GetTextExtentExPointW 函数 (wingdi.h)
GetTextExtentExPoint 函数检索指定字符串中适合指定空间的字符数,并使用每个字符的文本范围填充数组。 (文本范围是空格开头与空间中适合的字符之间的距离。) 此信息可用于换行计算。
语法
BOOL GetTextExtentExPointW(
[in] HDC hdc,
[in] LPCWSTR lpszString,
[in] int cchString,
[in] int nMaxExtent,
[out] LPINT lpnFit,
[out] LPINT lpnDx,
[out] LPSIZE lpSize
);
参数
[in] hdc
设备上下文的句柄。
[in] lpszString
指向要检索其盘区的以 null 结尾的字符串的指针。
[in] cchString
lpszStr 参数指向的字符串中的字符数。 对于 ANSI 调用,它指定字符串长度(以字节为单位);对于 Unicode,它指定字符串长度(以 WORD 为单位)。 请注意,对于 ANSI 函数,SBCS 代码页中的字符各采用一个字节,而 DBCS 代码页中的大多数字符采用两个字节:对于 Unicode 函数,当前定义的大多数 Unicode 字符 (基本多语言平面 (BMP) ) 中的字符是一个 WORD,而 Unicode 代理项是两个 WORD。
[in] nMaxExtent
格式化字符串的最大允许宽度(以逻辑单位为单位)。
[out] lpnFit
指向整数的指针,该整数接收将由 nMaxExtent 参数指定的空间容纳的最大字符数的计数。 当 lpnFit 参数为 NULL 时, 将忽略 nMaxExtent 参数。
[out] lpnDx
指向接收部分字符串范围的整数数组的指针。 数组中的每个元素都提供字符串开头与 适合 nMaxExtent 参数指定空间的字符之一之间的距离(以逻辑单位为单位)。 此数组的元素数必须至少与 cchString 参数指定的字符数一样多,因为整个数组都在内部使用。 函数使用 与 lpnFit 参数指定的字符数一样的有效范围填充数组。 应忽略数组其余部分中的任何值。 如果 alpDx 为 NULL,则该函数不计算部分字符串宽度。
对于复杂脚本,其中字符序列可由任意数量的字形表示, alpDx 数组中的值以及 lpnFit 参数指定的数字与代码点的一对一匹配。 同样,应忽略 alpDx 数组中的其余值。
[out] lpSize
指向 SIZE 结构的指针,该结构接收字符串的维度(以逻辑单元为单位)。 此参数不能为 NULL。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。
注解
如果 lpnFit 和 alpDx 参数均为 NULL,则调用 GetTextExtentExPoint 函数等效于调用 GetTextExtentPoint 函数。
对于 GetTextExtentExPoint 的 ANSI 版本, lpDx 数组的 INT 值数与 lpString 中的字节数相同。 对应于 DBCS 字符的两个字节的 INT 值是整个复合字符的每个范围。
请注意,GetTextExtentExPoint 的 alpDx 值与 ExtTextOut 的 lpDx 值不同。 若要在 lpDx 中使用 alpDx 值,必须先处理它们。
当此函数返回文本范围时,它假定文本是水平范围,即转义程始终为 0。 对于文本的水平和垂直度量,这都是如此。 即使使用指定非零转义的字体,此函数在计算文本范围时也不会使用角度。 应用必须显式转换它。 但是,当图形模式设置为 GM_ADVANCED 并且字符方向与打印方向为 90 度时,此函数返回的值不遵循此规则。 当给定字符串的字符方向和打印方向匹配时,此函数返回 SIZE 结构中字符串的尺寸为 { cx : 116, cy : 18 }。 当同一字符串的字符方向和打印方向相距 90 度时,此函数返回 SIZE 结构中字符串的尺寸为 { cx : 18, cy : 116 }。
此函数返回字符串中每个连续字符的范围。 当这些四舍五入为逻辑单元时,你得到的结果与 从 GetCharWidth 返回的结果不同,后者返回舍入到逻辑单元的每个单独字符的宽度。
注意
wingdi.h 标头将 GetTextExtentExPoint 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | wingdi.h (包括 Windows.h) |
Library | Gdi32.lib |
DLL | Gdi32.dll |