GetWindowTextLengthA 函数 (winuser.h)

检索指定窗口的标题栏文本的长度(如果窗口具有标题栏)。 如果指定的窗口是控件,该函数将检索控件中文本的长度。 但是,GetWindowTextLength 无法检索其他应用程序中编辑控件的文本长度。

语法

int GetWindowTextLengthA(
  [in] HWND hWnd
);

参数

[in] hWnd

类型:HWND

窗口或控件的句柄。

返回值

类型:int

如果函数成功,则返回值为文本的长度(以字符为单位)。 在某些情况下,此值可能大于文本的长度(请参阅“备注”。

如果窗口没有文本,则返回值为零。

函数失败由零的返回值和 GetLastError 结果指示为非零。

注意

此函数未清除最新的错误信息。 若要确定成功或失败,请通过调用 SetLastError 0 清除最新的错误信息,然后调用 getLastError

言论

如果目标窗口归当前进程所有,GetWindowTextLength 会导致 WM_GETTEXTLENGTH 消息发送到指定的窗口或控件。

在某些情况下,GetWindowTextLength 函数可能会返回大于文本实际长度的值。 这发生在 ANSI 和 Unicode 的某些混合体中,这是因为系统允许文本中可能存在双字节字符集 (DBCS) 字符。 但是,返回值始终至少与文本的实际长度一样大;因此,始终可以使用它来指导缓冲区分配。 当应用程序同时使用 ANSI 函数和使用 Unicode 的常见对话时,可能会发生此行为。 当应用程序将 ANSI 版本的 GetWindowTextLength 与窗口过程为 Unicode 的窗口一起使用,或者将 GetWindowTextLength 的 Unicode 版本 与窗口过程为 ANSI 的窗口一起使用时,也会发生这种情况。 有关 ANSI 和 ANSI 函数的详细信息,请参阅函数原型约定。

若要获取文本的确切长度,请使用 WM_GETTEXTLB_GETTEXTCB_GETLBTEXT 消息,或 GetWindowText 函数。

注意

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

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 winuser.h (包括 Windows.h)
User32.lib
DLL User32.dll
API 集 ext-ms-win-ntuser-window-l1-1-1(在 Windows 8.1 中引入)

另请参阅

CB_GETLBTEXT

概念

GetWindowText

LB_GETTEXT

其他资源

参考

SetWindowText

WM_GETTEXT

WM_GETTEXTLENGTH

Windows