平台 SDK: Windows GDI

GetCharABCWidths

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。