应用程序发送WM_GETTEXTLENGTH消息以确定与窗口相关联的文本的字符长度。长度不包括终止空字符。
WM_GETTEXTLENGTH
wParam = 0; // 不曾用过;必须为零
lParam = 0; // 不曾用过;必须为零
参数
此消息没有参数。
返回值
返回值是文本的长度(以字符为单位)。
默认动作
DefWindowProc函数返回文本的长度(以字符为单位)。在某些条件下,该值实际上可能大于文本的长度。有关详细信息,请参阅以下备注部分。
备注
对于编辑控件,要复制的文本是编辑控件的内容。对于组合框,文本是组合框的编辑控件(或静态文本)部分的内容。对于按钮,文本是按钮名称。对于其他窗口,文本是窗口标题。要确定列表框中项目的长度,应用程序可以使用LB_GETTEXTLEN消息。
在某些条件下,DefWindowProc 函数返回的值大于文本的实际长度。这与ANSI和Unicode的某些混合体发生,并且是由于操作系统允许在文本中可能存在DBCS字符。然而,返回值将始终至少与文本的实际长度一样大;您可以随时使用它来指导缓冲区分配。当应用程序使用同时使用Unicode的ANSI函数和公共对话框时,可能会发生此行为。
要获取文本的确切长度,请使用WM_GETTEXT,LB_GETTEXT或CB_GETLBTEXT消息或GetWindowText功能。
也可以看看
CB_GETLBTEXT, DefWindowProc, GetWindowText, GetWindowTextLength, LB_GETTEXT, LB_GETTEXTLEN, WM_GETTEXT