2009-01-26 69 views
2

我有一個LOGFONT.lfHeight值-11。但是,我知道字體大小實際上是8,所以我需要將此數字轉換爲不同的測量單位?我發現這個配方中的MSDN文檔:如何將LOGFONT.lfHeight轉換爲像素?

int height = abs((pixels * DOTSY)/72); 

這需要像素,並使得它成爲一個高度值LOGFONT可以使用。如果我以另一種方式工作:

int pixels = abs((height/DOTSY) * 72); 

這給我一個值8.24。我是否正確地認爲這是我需要做的將字體高度轉換爲可用值的操作?

回答

4

是的。 DOTSY將爲96,這是Windows中DPI的默認監視器分辨率。您需要確保此值適用於您要寫入的設備 - 打印機通常具有更高的分辨率,並且可以更改顯示器分辨率。 lfHeight表示字體映射器應該使用字符高度而不是單元格高度來匹配,因此只有絕對值在這裏很重要。

+0

非常好 - 謝謝。我將在各種DPI設置上進行測試,以確保其正常工作。 :) – 2009-01-26 16:31:25