小甲鱼 发表于 2016-7-9 02:49:34

GetWindowTextLength

注:本文档由 无符号整形 翻译,小甲鱼校对。

原文链接 -> 传送门

函数功能:

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)


【API档案】版权归鱼C工作室(www.fishc.com)所有,转载请注明来源。
页: [1]
查看完整版本: GetWindowTextLength