字符宽度

应用程序在执行此类任务时需要检索字符宽度数据,例如将文本字符串拟合到页面或列宽。 应用程序可以使用四个函数来检索字符宽度数据。 其中两个函数检索字符高级宽度,其中两个函数检索实际字符宽度数据。

应用程序可以使用 GetCharWidth32GetCharWidthFloat 函数检索文本字符串中单个字符或符号的前进宽度。 高级宽度是视频显示器上的光标或打印机上的打印头在打印文本字符串中的下一个字符之前必须前进的距离。 GetCharWidth32 函数将高级宽度作为整数值返回。 如果需要更高的精度,应用程序可以使用 GetCharWidthFloat 函数检索小数高级宽度值。

应用程序可以使用 GetCharABCWidthsGetCharABCWidthsFloat 函数检索实际字符宽度数据。 GetCharABCWidthsFloat 函数适用于所有字体。 GetCharABCWidths 函数仅适用于 TrueType 和 OpenType 字体。 有关 TrueType 和 OpenType 字体的详细信息,请参阅 光栅、矢量、TrueType 和 OpenType 字体

下图显示了字符宽度的三个组成部分:

illustration showing the a spacing, b spacing, and c spacing of two adjacent characters

A 间距是在放置字符之前添加到当前位置的宽度。 B 间距是字符本身的宽度。 C 间距是字符右侧的空白。 总前进宽度通过计算 A+B+C 的总和来确定。 字符单元格是一个虚构矩形,该矩形环绕字体中的每个字符或符号。 由于字符可以悬停或悬停字符单元格,或者 A 和 C 增量可以是负数。