2011-05-22 50 views
1

最近有一個關於檢索用戶的字體設置,如96或120 dpi的問題,幾個SO大師告訴我從任何圖形對象使用dpiX和dpiY。使用圖形來衡量窗口用戶字體大小設置

但是,dpi與屏幕大小(X/Y)或字體大小(X僅限於可用)有關嗎?

換句話說,我可以確定在所有情況下dpiX = dpiY?

否則,新的字體看起來會拉長,不是嗎?

例如,如果dpiX = 96和dpiY = 60?

+0

相關:http://stackoverflow.com/questions/929801/how-do-i-specify-font-height-at-different-orientations – 2011-05-22 13:39:20

+0

字體大小也有X和Y的尺寸。我不確定你在這裏問什麼。 – 2011-05-22 16:16:12

回答

0

如果您的文本與水平軸或垂直軸對齊,則使用DPI作爲另一個軸來指定高度。當字體被實例化時,會考慮其他維度。

例如,如果你想正常方向的文本,然後你計算像素高度在垂直DPI方面:

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

如果您的文本旋轉90度,然後你會使用LOGPIXELSX代替LOGPIXELSY

這就是說,我從來沒有見過一個Windows顯示屏,DPI在兩個方向都不一樣。我看到它們在某些打印機上有所不同,並且驅動程序處理這個不一致,導致此unanswered question