GetTabbedTextExtentA 函数 (winuser.h)

GetTabbedTextExtent 函数计算字符串的宽度和高度。 如果字符串包含一个或多个制表符,则字符串的宽度基于指定的制表位。 GetTabbedTextExtent 函数使用当前选定的字体来计算字符串的尺寸。

语法

DWORD GetTabbedTextExtentA(
  [in] HDC       hdc,
  [in] LPCSTR    lpString,
  [in] int       chCount,
  [in] int       nTabPositions,
  [in] const INT *lpnTabStopPositions
);

参数

[in] hdc

设备上下文的句柄。

[in] lpString

指向字符串的指针。

[in] chCount

文本字符串的长度。 对于 ANSI 函数,它是 BYTE 计数,对于 Unicode 函数,它是 WORD 计数。 请注意,对于 ANSI 函数,SBCS 代码页中的字符每个字节占用一个字节,而 DBCS 代码页中的大多数字符需要两个字节:对于 Unicode 函数,当前定义的 Unicode 字符(基本多语言平面(BMP)中的字符是一个 WORD,而 Unicode 代理项是两个 WORD。

[in] nTabPositions

lpnTabStopPositions 参数指向的数组中的制表位位置数。

[in] lpnTabStopPositions

指向包含制表位位置(以设备单位为单位)的数组的指针。 制表位必须按递增顺序排序;最小 x 值应为数组中的第一项。

返回值

如果函数成功,则返回值是逻辑单元中字符串的维度。 高度为高阶单词,宽度为低序单词。

如果函数失败,则返回值为 0。 如果 hDC 无效且 nTabPositions 小于 0,则 getTabbedTextExtent 将失败。

言论

当前剪辑区域不会影响 GetTabbedTextExtent 函数返回的宽度和高度。

由于某些设备不会在常规单元格数组中放置字符(即它们将字符切入字符),因此字符串中字符的范围之和可能不等于字符串的范围。

如果 nTabPositions 参数为零,并且 lpnTabStopPositions 参数 NULL,则选项卡将扩展到平均字符宽度的八倍。

如果 nTabPositions 为 1,则制表位由 lpnTabStopPositions 磅的数组中第一个值指定的距离分隔。

注意

winuser.h 标头将 GetTabbedTextExtent 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 winuser.h (包括 Windows.h)
User32.lib
DLL User32.dll

另请参阅

字体和文本功能

字体和文本概述

GetTextExtentPoint32

TabbedTextOut