鱼C论坛

 找回密码
 立即注册
查看: 2209|回复: 0

[API档案] GetWindowTextLength

[复制链接]
发表于 2016-7-9 02:49:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

原文链接 -> 传送门

函数功能:

GetWindowTextLength 函数用于获取指定窗口标题栏(如果存在)文本的长度。如果指定的窗口是一个控件,函数将获取控件中文本的长度。然而, GetWindowTextLength 函数不能获取另一个应用程序中控件的文本长度。


API 函数原型:

注释:_In_ 说明该参数是输入的。
  1. int WINAPI GetWindowTextLength(
  2.   _In_ HWND hWnd
  3. );
复制代码


参数解析:

参数 含义
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)所有,转载请注明来源。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-30 19:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表