GetTabbedTextExtentW 函数 (winuser.h)

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

语法

DWORD GetTabbedTextExtentW(
  [in] HDC       hdc,
  [in] LPCWSTR   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,则选项卡将扩展到平均字符宽度的 8 倍。

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

注意

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

要求

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

另请参阅

字体和文本函数

字体和文本概述

GetTextExtentPoint32

TabbedTextOut