装置与设计单位

【勇芳软件工作室】汉化HomePreviousNext

只有在将字体选择到设备上下文中之后,应用程序才能检索物理字体的字体度量。当将字体选择到设备上下文中时,将为设备进行缩放。设备特有的字体度量称为设备单位。

字体中的便携式指标称为设计单位。要应用于给定的设备,设计单位必须转换为设备单位。使用以下公式将设计单位转换为设备单位。

【DeviceUnits】 = (【DesignUnits】/【unitsPerEm】) * (【PointSize】/72) * 【DeviceResolution】

该公式中的变量具有以下含义。

变量描述
【DeviceUnits】指定转换为设备单位的【DesignUnits】字体度量。该值与【DeviceResolution】给出的值的单位相同。
【DesignUnits】指定要转换为设备单位的字体度量。该值可以是任何字体度量,包括字符的宽度或整个字体的上升值。
【unitsPerEm】指定字体的em方形尺寸。
【PointSize】以点为单位指定字体的大小。(一点等于1/72英寸)
【DeviceResolution】指定每英寸的设备单位数(像素)数。激光打印机的典型值可能为300,VGA屏幕为96。

该公式不应用于将设备单元转换回设计单位。设备单位总是四舍五入到最近的像素。传播的四舍五入误差可能变得非常大,特别是当应用程序正在使用屏幕尺寸时。

要请求设计单位,请创建一个高度指定为 - 【unitsPerEm】的逻辑字体。应用程序可以通过调用EnumFontFamilies功能并检查NEWTEXTMETRIC结构的ntmSizeEM成员来检索【unitsPerEm】的值。