你如何将LOGFONT.lfHeight转换为像素?

时间:2009-01-26 16:11:14

标签: c#

我的LOGFONT.lfHeight值为-11。但是,我知道字体大小实际上是8,所以我需要将此数字转换为不同的测量单位吗?我在MSDN文档中找到了这个公式:

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

这会占用像素并使其成为LOGFONT可以使用的高度值。如果我以另一种方式工作:

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

这给了我8.24的值。我是否正确认为这是将字体高度转换为可用值所需的全部内容?

1 个答案:

答案 0 :(得分:4)

是。 DOTSY将为96,这是Windows中DPI的默认监视器分辨率。您需要确保此值对于您要写入的设备是正确的 - 打印机通常具有更高的分辨率,并且可以更改显示器分辨率。 lfHeight为负数表示字体映射器应使用字符高度而不是单元格高度来匹配,因此这里只有绝对值很重要。