描述
GetTextExtentPoint函数计算指定的文本字符串的宽度和高度。
注意此函数仅适用于与16位版本的Windows兼容。应用程序应调用GetTextExtentPoint32功能,可提供更准确的结果。
C++ 语法
BOOL GetTextExtentPoint( __in HDC hdc, __in LPCTSTR lpString, __in int cbString, __out LPSIZE lpSize ); |
PowerBASIC 语法
FUNCTION GetTextExtentPointA ( _ BYVAL hdc AS DWORD, _ BYREF lpString AS ASCIIZ, _ BYVAL cbString AS LONG, _ BYREF lpSize AS SIZE _ ) AS LONG |
Unicode版本:
FUNCTION GetTextExtentPointW ( _ BYVAL hdc AS DWORD, _ BYREF lpString AS WSTRINGZ, _ BYVAL cbString AS LONG, _ BYREF lpSize AS SIZE _ ) AS LONG |
参数
hdc
[in]处理设备上下文。
lpString
[in]指向文本的字符串的指针。字符串不需要为零终止,因为cbString指定字符串的长度。
cbString
[in]指定lpString指向的字符串的长度。
Windows 95/98 / Me:此值不得超过8192。
lpSize
[out]指向SIZE结构的指针,以逻辑单位接收字符串的维度。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。
备注
GetTextExtentPoint功能使用当前选定的字体来计算字符串的尺寸。在不考虑任何裁剪的情况下,以逻辑单位计算宽度和高度。此外,此函数假定文本是水平的,也就是说,擒纵机构始终为0。对于文本的水平和垂直测量都是如此。即使使用指定非零擒纵机构的字体,该函数也不会在计算文本范围时使用该角度。应用程序必须明确转换。
因为某些设备的汉字字符,字符串中字符的范围的总和可能不等于字符串的范围。
计算的字符串宽度考虑了由SetTextCharacterExtra函数设置的字符间距。
Windows 95/98 / Me:为了与Windows 3.1兼容,GetTextExtentPoint为粗体模拟字体添加了一个额外的像素。然而,粗体Tahoma字体没有模拟,所以它没有任何额外的像素。要以粗体模拟字体校正额外像素,请将传递给GetTextExtentPoint的每个子字符串的长度减小一个像素,并为整个字符串添加一个额外的像素。
Windows 95/98 / Me:虽然Windows 95/98 / Me中存在GetTextExtentPointW,但Microsoft Layer for Unicode支持在所有Windows操作系统上提供更一致的行为。
引用文件 #INCLUDE Once
WinGdi.inc(包括Windows.inc)