2012-04-22 17 views
1

多くの例でもあるそのポイントサイズから、フォントの論理サイズを計算し、次の道を示す私のコードは、年のためにそれをやってきたか:計算論理フォントサイズ

SizeLogical = -MulDiv(SizePt, GetDeviceCaps(hdc, LOGPIXELSY), 72);

しかし、私は最近、 this oneのような例は、72の代わりに96の係数を使用することに気付きました。これは、モニタの物理的解像度が長年にわたって増加しているため、タイポグラフィの定型72ポイント/インチではなく、もしそうなら、正しい解決策は要素を動的に決定することですが、どのWindows APIがそれを行うために呼び出すのですか?それとも、私はそれをどうにか誤解していますか?

答えて

1

72これは決して変わらない、インチあたりの点の数です。 96は1インチあたりのピクセル数で、システムごとに変更できます。

私はあなたが使用している式がまっすぐMicrosoftの資料からであると考えています。編集 - ここにあります:http://msdn.microsoft.com/en-us/library/dd183499%28v=vs.85%29.aspx

これはGetDeviceCapsによって返されているものなので、96について心配する必要はありません。

+0

あなたの答えをありがとう。ちょうど確信するために:72にそれを残すのは正しいですか? – Dabbler

+0

@Dabbler、はい、72のままにしておきます。 –