2

许多示例显示了以下从磅值计算字体逻辑大小的方法,这也是我的代码多年来一直这样做的方式:

SizeLogical = -MulDiv(SizePt, GetDeviceCaps(hdc, LOGPIXELSY), 72);

但我最近注意到像这样的例子使用了 96 而不是 72。这是因为显示器的物理分辨率多年来一直在增加,所以它们显示每英寸 96 像素,而不是排版的经典每英寸 72 点?如果是这样,正确的解决方案是动态确定因素,但是调用哪个 Windows API 来做到这一点?还是我误解了这一切?

4

1 回答 1

2

72 是每英寸的点数,这永远不会改变。96 是每英寸的像素数,它可以因系统而异。

我相信您使用的公式直接来自 Microsoft 文档。编辑 - 这里是:http: //msdn.microsoft.com/en-us/library/dd183499%28v=vs.85%29.aspx

您不必担心 96,因为这是 GetDeviceCaps 返回的内容。

于 2012-04-22T14:15:26.447 回答