【问题标题】:Calculating the logical font size计算逻辑字体大小
【发布时间】:2012-04-22 22:15:26
【问题描述】:

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

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

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

【问题讨论】:

    标签: windows font-size


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回答。只是为了确定:那么将其保留为 72 是否正确?
    • @Dabbler,是的,保持在 72。
    猜你喜欢
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 2019-11-07
    • 2018-12-17
    • 2016-09-01
    相关资源
    最近更新 更多