あと、hFont = CreateFont(18, の 第一引数の18はどのように計算していますか?表示と印字では大きく変わるはずですが!私の場合はどちらも マイナス側の数値になったかと。どちらにしても確認できないようなコードではハッキリした事は解りません。