GetWindowTextLengthA 函数 (winuser.h)

检索指定窗口标题栏文本的长度(以字符为单位), (窗口具有标题栏) 。 如果指定的窗口是控件,则函数将检索控件内文本的长度。 但是, GetWindowTextLength 无法检索另一个应用程序中编辑控件的文本长度。

语法

int GetWindowTextLengthA(
  [in] HWND hWnd
);

参数

[in] hWnd

类型:HWND

窗口或控件的句柄。

返回值

类型: int

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

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

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

注意

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

注解

如果目标窗口由当前进程拥有, 则 GetWindowTextLength 会将 WM_GETTEXTLENGTH 消息发送到指定的窗口或控件。

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

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

注意

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

要求

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

另请参阅

CB_GETLBTEXT

概念性

GetWindowText

LB_GETTEXT

其他资源

引用

SetWindowText

WM_GETTEXT

WM_GETTEXTLENGTH

Windows