掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ズーム時のフォントが正確に描画されません (ID:72840)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> このlfHeightをそのまま使ってはいけないのでしょうか。 LOGFONT構造体のlfHeightには ・lfHeight > 0 時、フォントの高さは”セルの高さ”を基準にする ・lfHeight < 0 時、フォントの高さは”文字の高さ”(セルの高さ - 内部レディング)を基準にする という違いがある。 で、Gdiplus::Font に実数を指定(not LOGFONT)してフォントを作成する際は、フォントの「”文字の高さ”を”正数”」※で指定する。 ※ GDI+のソースを見ると Gdiplus::Font 構築時に与えられたフォント高に対してわざわざ「-1」を掛けて正負反転してからフォントを作成している。 という事なのでそのまま使っちゃうと仕様上↓の違いが発生する事になる。 const lfHeight = 16; ::CreateFont(lfHeight, ...) = セルの高さ基準 Gdiplus::Font(, lfHeight, ...) = 文字の高さ基準 //::CreateFont(-lfHeight, ...) = 文字の高さ基準 > デバイスコンテキストの後片付けも追加しておきました。問題があればご指摘ください。 ゴメン、開放処理抜けてた。 厳密さを追求するなら TextOutW に渡してる y も小数点以下四捨五入してやれば良いかと。 も一つ云うならば、'\n'以外の制御文字が現れた場合は無視する等の判定があっても良いかも(制御文字は来ない!とルールとして決めちゃってもOKだろうけど)
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.