原文链接 -> 传送门
函数功能:
GetWindowTextLength 函数用于获取指定窗口标题栏(如果存在)文本的长度。如果指定的窗口是一个控件,函数将获取控件中文本的长度。然而, GetWindowTextLength 函数不能获取另一个应用程序中控件的文本长度。
API 函数原型:
注释:_In_ 说明该参数是输入的。
int WINAPI GetWindowTextLength( _In_ HWND hWnd );
参数解析:
|
参数 |
含义 |
|
hWnd |
指向窗口或控件的句柄 |
返回值:
1. 如果函数成功,返回值是文本的长度、字符的长度。在一定条件下,这个值实际上可能大于文本的长度。对于更多信息,见下面的备注部分;
2. 如果窗口没有文本,则返回值为 0。
获取有关错误的更多信息,请调用 GetLastError 函数。
备注:
1. 如果目标窗口是当前进程所拥有,GetWindowTextLength 函数发送 WM_GETTEXTLENGTH 消息到指定的窗口或控件。
2. 在一定的条件下, GetWindowTextLength 函数的返回值可能大于实际文本长度。这是因为 ANSI 和 Unicode 混用以及系统允许双字节字符集( DBCS)在文本内存在的原因。但是函数返回值至少要与文本的实际长度相等,因此可以利用这一点来指示缓冲区分配的问题。当应用程序既使用了 ANSI 函数又使用 Unicode 的通用对话框就会发生缓存分配的问题;同样,一个应用程序既使用 ANSI 版本的 GetWindowTextLength 函数又使用了一个 Unicode 的窗口过程就会有缓存分配的问题。或者在一个 ANSI 的窗口过程中内使用了 Unicode 的 GetWindowTextLength 函数时也会有缓存分配的问题。
3. 要获取文本的实际长度,使用 WM_GETTEXT 、 LB_GETTEXT 、CB_GETLBTEXT 消息或者调用 GetWindowText 函数。
需求:
|
Minimum supported client |
Windows 2000 专业版 [仅桌面应用程序] |
|
Minimum supported server |
Windows 2000 服务器版 [仅桌面应用程序] |
|
Header |
Winuser.h (包含于 Windows.h) |
|
Library |
User32.lib |
|
DLL |
User32.dll |
|
Unicode and ANSI names |
GetWindowTextLengthW (Unicode) 和 GetWindowTextLengthA (ANSI) |




