WM_GETTEXT消息

将对应于窗口的文本复制到调用方提供的缓冲区中。

#define WM_GETTEXT                      0x000D

参数

wParam

要复制的最大字符数,包括终止 null 字符。

由于从 ANSI 转换为 Unicode,ANSI 应用程序可能会将缓冲区中的字符串的大小 (减小到 wParam 值的最小一半) 。

lParam

指向要接收文本的缓冲区的指针。

返回值

类型: LRESULT

返回值是复制的字符数,不包括终止 null 字符。

备注

DefWindowProc 函数将与窗口关联的文本复制到指定的缓冲区中,并返回复制的字符数。 请注意,对于非文本静态控件,这会提供最初创建控件时使用的文本,即 ID 号。 但是,它提供最初创建的非文本静态控件的 ID。 也就是说,如果随后使用 STM_SETIMAGE 对其进行更改,则仍会返回原始 ID。

对于编辑控件,要复制的文本是编辑控件的内容。 对于组合框,文本是编辑控件 (或静态文本) 组合框部分的内容。 对于按钮,文本是按钮名称。 对于其他窗口,文本是窗口标题。 若要复制列表框中项的文本,应用程序可以使用 LB_GETTEXT 消息。

WM_GETTEXT 消息发送到具有 SS_ICON 样式的静态控件时, 将在 lParam 指向的缓冲区的前四个字节中返回图标的句柄。 仅当 WM_SETTEXT 消息已用于设置图标时,才如此。

富编辑: 如果要复制的文本超过 64K,请使用 EM_STREAMOUTEM_GETSELTEXT 消息。

向非文本静态控件(如静态位图或静态图标控件)发送 WM_GETTEXT 消息不会返回字符串值。 相反,它返回零。 此外,在早期版本的 Windows 中,应用程序可以将 WM_GETTEXT 消息发送到非文本静态控件,以检索控件的 ID。 若要检索控件的 ID,应用程序可以使用 GetWindowLong 传递GWL_ID作为索引值,或使用 GWLP_ID传递 GetWindowLongPtr

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Winuser.h (包括 Windows.h)

另请参阅

引用

DefWindowProc

GetWindowLong

GetWindowLongPtr

GetWindowText

GetWindowTextLength

WM_GETTEXTLENGTH

WM_SETTEXT

概念性

Windows

其他资源

EM_GETSELTEXT

EM_STREAMOUT

LB_GETTEXT