我的LOGFONT.lfHeight
值为-11。但是,我知道字体大小实际上是8,所以我需要将此数字转换为不同的测量单位吗?我在MSDN文档中找到了这个公式:
int height = abs((pixels * DOTSY) / 72);
这会占用像素并使其成为LOGFONT
可以使用的高度值。如果我以另一种方式工作:
int pixels = abs((height / DOTSY) * 72);
这给了我8.24的值。我是否正确认为这是将字体高度转换为可用值所需的全部内容?
答案 0 :(得分:4)
是。 DOTSY将为96,这是Windows中DPI的默认监视器分辨率。您需要确保此值对于您要写入的设备是正确的 - 打印机通常具有更高的分辨率,并且可以更改显示器分辨率。 lfHeight为负数表示字体映射器应使用字符高度而不是单元格高度来匹配,因此这里只有绝对值很重要。