平台 SDK: Windows GDI |
GetCharABCWidths函数以当前TrueType字体检索指定范围内连续字符的逻辑单位宽度。 此功能只能使用TrueType字体。
BOOL GetCharABCWidths( HDC hdc, // 设备上下文句柄 UINT uFirstChar, // 第一个字符在范围内 UINT uLastChar, // 最后一个字符范围 LPABC lpabc // 字符宽度阵列 );
hdc
[in] 设备上下文句柄。
uFirstChar
[in] 指定当前字体的连续字符组中的第一个字符。
uLastChar
[in] 指定当前字体的连续字符组中的最后一个字符。
lpabc
[out] 指向以逻辑单位接收字符宽度的ABC结构数组的指针。 该数组必须至少包含与uFirstChar和uLastChar参数指定的范围内的字符一样多的ABC结构。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。
Windows NT/2000/XP: 要获取扩展错误信息,请调用GetLastError。
备注
在选择特定点大小后,TrueType光栅化器提供ABC字符间距。 间距是在放置字形之前添加到当前位置的距离。 B间距是字形黑色部分的宽度。 C间距是添加到当前位置的距离,以在字形右侧提供空格。 总高级宽度由A + B + C指定。
当GetCharABCWidths函数检索字符的负A或C宽度时,该字符包括下划线或突出端。
要将ABC宽度转换为字体设计单位,应用程序应使用存储在OUTLTETEXTMETRIC结构的otmEMSquare成员中的值。 该值可以通过调用GetOutlineTextMetrics函数来检索。
默认字符的ABC宽度用于当前选定字体范围之外的字符。
要检索非TrueType字体中的字符宽度,应用程序应使用GetCharWidth函数。
Windows 95/98/Me: GetCharABCWidthsW由Microsoft Layer for Unicode支持。 要使用此功能,必须将某些文件添加到应用程序中,如Windows 95/98 / Me系统中的Microsoft Layer for Unicode所述。
要求
Windows NT / 2000 / XP:包含在Windows NT 3.1及更高版本中。
Windows 95/98 / Me:包含在Windows 95及更高版本中。
头文件:声明于Wingdi.h; 包含于Windows.h。
库:使用Gdi32.lib。
Unicode: 在Windows NT/2000/XP上实现为Unicode和ANSI版本。 还支持Microsoft Layer for Unicode。