1

最近、96または120 dpiなどのユーザーのフォント設定を取得することについて質問を投げかけたところ、いくつかのSOの達人が、任意のグラフィックオブジェクトからdpiXおよびdpiYを使用するように指示しました。

しかし、dpiは画面サイズ(X / Y)またはフォントサイズ(Xのみ使用可能)に関連していますか?

言い換えれば、すべての場合でdpiX = dpiYであることを確認できますか?

そうしないと、新しいフォントが引き伸ばされたように見えますね。

たとえば、dpiX=96およびdpiY=60の場合はどうなりますか?

4

1 に答える 1

0

テキストが水平軸または垂直軸に揃えられている場合は、他の軸の DPI を使用して高さを指定します。フォントがインスタンス化されると、他の次元が考慮されます。

たとえば、通常の向きのテキストが必要な場合は、垂直 DPI でピクセルの高さを計算します。

lf.lfHeight = -::MulDiv(point_size, ::GetSysMetrics(hdc, LOGPIXELSY), 72);

テキストが 90 度回転している場合は、LOGPIXELSX代わりにLOGPIXELSY.

そうは言っても、DPI が両方向で同じでない Windows ディスプレイを見たことがありません。一部のプリンターでそれらが異なるのを見てきましたが、ドライバーはこれを一貫して処理せず、この未回答の質問につながりました.

于 2011-05-22T13:45:50.410 に答える