平台 SDK: Windows GDI

GetCharABCWidthsI

GetCharABCWidthsI函数以当前TrueType字体检索指定范围内连续字形索引的逻辑单位宽度。 此功能只能使用TrueType字体。

BOOL GetCharABCWidthsI(
  HDC hdc,         // 设备上下文句柄
  UINT giFirst,    // 第一个字形指数在范围内
  UINT cgi,        // 字形指数在范围内的数量
  LPWORD pgi,      // 字形指数数组
  LPABC lpabc      // 字符宽度阵列
);

参数

  • hdc

  • [in] 设备上下文句柄。

  • giFirst

  • [in] 指定当前字体的连续字形索引组中的第一个字形索引。 仅当pgi参数为NULL时才使用此参数。

  • cgi

  • [in] 指定字形索引数。

  • pgi

  • [in] 指向包含字形索引的数组的指针。 如果此参数为NULL,则使用giFirst参数。 cgi参数指定此数组中的字形索引数。

  • lpabc

  • [out] 指向以逻辑单位接收字符宽度的ABC结构数组的指针。 该数组必须至少包含与cgi参数指定的字形索引一样多的ABC结构。

返回值

如果函数成功,返回值不为零。

如果函数失败,返回值为零。

Windows NT/2000/XP: 要获取扩展错误信息,请调用GetLastError

备注


在选择特定点大小后,TrueType光栅化器提供ABC字符间距。 间距是在放置字形之前添加到当前位置的距离。 B间距是字形黑色部分的宽度。 C间距是添加到当前位置的距离,以在字形右侧提供空格。 总高级宽度由A + B + C指定。

GetCharABCWidthsI函数检索字符的负A或C宽度时,该字符包括下划线或突出端。

要将ABC宽度转换为字体设计单位,应用程序应使用存储在OUTLTETEXTMETRIC结构的otmEMSquare成员中的值。 该值可以通过调用GetOutlineTextMetrics函数来检索。

默认字符的ABC宽度用于当前选定字体范围之外的字符。

要检索非TrueType字体中字形索引的宽度,应用程序应使用GetCharWidthI函数。

要求

   Windows NT / 2000 / XP:包含在Windows NT 3.1及更高版本中。

   Windows 95/98 / Me:包含在Windows 95及更高版本中。

   头文件:声明于Wingdi.h; 包含于Windows.h。

   库:使用Gdi32.lib。