编辑控件 (Windows 控件)

本部分包含有关用于编辑控件的编程元素的信息。 编辑控件 是一个矩形控件窗口,通常用于对话框中,允许用户在键盘上键入和编辑文本。

综述

主题 内容
关于编辑控件 编辑控件是一个矩形控件窗口,通常用于对话框中,使用户能够输入和编辑文本。
编辑控件文本作 系统会自动处理所有用户启动的文本作,并在作完成后通知应用程序。
使用编辑控件 编辑控件通常用于对话框,但也可以在标准窗口的工作区中使用它们。 单行编辑控件可用于从用户检索单个字符串。 使用多行编辑控件,应用程序可以轻松实现简单字处理器的大部分功能。

功能

主题 内容
EditWordBreakProc EM_SETWORDBREAKPROC 消息一起使用的应用程序定义的回调函数。 多行编辑控件或富编辑控件调用 EditWordBreakProc 函数来中断文本行。
EDITWORDBREAKPROC 类型定义指向此回调函数的指针。 EditWordBreakProc 是应用程序定义的函数名称的占位符。

主题 内容
Edit_CanUndo 确定编辑控件或富编辑控件的撤消队列中是否有任何作。 可以使用此宏或显式发送 EM_CANUNDO 消息。
Edit_EmptyUndoBuffer 重置编辑或富编辑控件的撤消标志。 每当可以撤消编辑控件中的作时,都会设置撤消标志。 可以使用此宏或显式发送 EM_EMPTYUNDOBUFFER 消息。
Edit_Enable 启用或禁用编辑控件。
Edit_FmtLines 设置一个标志,该标志确定从多行编辑控件检索到的文本是否包括软换行符。 软换行符由两个回车符和一个换行符组成,并插入到由于换字而断开的行的末尾。 可以使用此宏或显式发送 EM_FMTLINES 消息。
Edit_GetCaretIndex 获取编辑控件中插入符号位置的从零开始的索引。 可以使用此宏或显式发送 EM_GETCARETINDEX 消息。
Edit_GetCueBannerText 获取在编辑控件中显示为文本提示或提示的文本。 可以使用此宏或显式发送 EM_GETCUEBANNER 消息。
Edit_GetEndOfLine 获取指定编辑控件的行尾字符。 使用此宏或显式发送 EM_GETENDOFLINE 消息。
Edit_GetExtendedStyle 获取指定编辑控件的扩展样式。 使用此宏或显式发送 EM_GETEXTENDEDSTYLE 消息。
Edit_GetFirstVisibleLine 获取多行编辑或富编辑控件中最上端可见行的索引。 可以使用此宏或显式发送 EM_GETFIRSTVISIBLELINE 消息。
Edit_GetHandle 获取当前为多行编辑控件的文本分配的内存的句柄。 可以使用此宏或显式发送 EM_GETHANDLE 消息。
Edit_GetHilite 未实现。
Edit_GetLine 从编辑或富编辑控件中检索文本行。 可以使用此宏或显式发送 EM_GETLINE 消息。
Edit_GetLineCount 获取编辑控件文本中的行数。 可以使用此宏或显式发送 EM_GETLINECOUNT 消息。
Edit_GetModify 获取编辑或富编辑控件的修改标志的状态。 该标志指示控件的内容是否已修改。 可以使用此宏或显式发送 EM_GETMODIFY 消息。
Edit_GetPasswordChar 获取编辑或富编辑控件的密码字符。 可以使用此宏或显式发送 EM_GETPASSWORDCHAR 消息。
Edit_GetRect 获取编辑控件的格式矩形。 可以使用此宏或显式发送 EM_GETRECT 消息。
Edit_GetSel 获取编辑或丰富编辑控件中当前所选内容的起始和结束字符位置。 可以使用此宏或显式发送 EM_GETSEL 消息。
Edit_GetText 获取编辑控件的文本。
Edit_GetTextLength 获取编辑控件文本中的字符数。
Edit_GetWordBreakProc 检索编辑或富编辑控件的 Wordwrap 函数的地址。 可以使用此宏或显式发送 EM_GETWORDBREAKPROC 消息。
Edit_GetZoom 获取当前缩放比例,该比率始终介于 1/64 和 64 之间。 可以使用此宏或显式发送 EM_GETZOOM 消息。
Edit_HideBalloonTip 隐藏与编辑控件关联的任何气球提示。 可以使用此宏或显式发送 EM_HIDEBALLOONTIP 消息。
Edit_LimitText 限制可进入编辑控件的文本长度。 可以使用此宏或显式发送 EM_LIMITTEXT 消息。
Edit_LineFromChar 获取在多行编辑或富编辑控件中包含指定字符索引的行的索引。 可以使用此宏或显式发送 EM_LINEFROMCHAR 消息。
Edit_LineIndex 获取多行编辑或富编辑控件中指定行的第一个字符的字符索引。 可以使用此宏或显式发送 EM_LINEINDEX 消息。
Edit_LineLength 检索编辑或丰富编辑控件中行的长度(以字符为单位)。 可以使用此宏或显式发送 EM_LINELENGTH 消息。
Edit_NoSetFocus 供内部使用;不建议在应用程序中使用。
防止单行编辑控件接收键盘焦点。 可以使用此宏或显式发送 EM_NOSETFOCUS 消息。
Edit_ReplaceSel 将编辑控件或富编辑控件中的选定文本替换为指定的文本。 可以使用此宏或显式发送 EM_REPLACESEL 消息。
Edit_Scroll 在多行编辑或富编辑控件中垂直滚动文本。 可以使用此宏或显式发送 EM_SCROLL 消息。
Edit_ScrollCaret 在编辑或富编辑控件中将插入符号滚动到视图中。 可以使用此宏或显式发送 EM_SCROLLCARET 消息。
Edit_SetCaretIndex 设置编辑控件中插入符号位置的从零开始的索引。 可以使用此宏或显式发送 EM_SETCARETINDEX 消息。
Edit_SetCueBannerText 为编辑控件设置显示为文本提示或提示的文本。 可以使用此宏或显式发送 EM_SETCUEBANNER 消息。
Edit_SetCueBannerTextFocused 为编辑控件设置显示为文本提示或提示的文本。 可以使用此宏或显式发送 EM_SETCUEBANNER 消息。
Edit_SetEndOfLine 设置指定编辑控件的行尾字符。 使用此宏或显式发送 EM_SETENDOFLINE 消息。
Edit_SetExtendedStyle 设置指定编辑控件的扩展样式。 使用此宏或显式发送 EM_SETEXTENDEDSTYLE 消息。
Edit_SetHandle 设置多行编辑控件将使用的内存的句柄。 可以使用此宏或显式发送 EM_SETHANDLE 消息。
Edit_SetHilite 未实现。
Edit_SetModify 设置或清除编辑控件的修改标志。 修改标志指示编辑控件中的文本是否已修改。 可以使用此宏或显式发送 EM_SETMODIFY 消息。
Edit_SetPasswordChar 设置或删除编辑或富编辑控件的密码字符。 设置密码字符时,将显示该字符代替用户键入的字符。 可以使用此宏或显式发送 EM_SETPASSWORDCHAR 消息。
Edit_SetReadOnly 设置或删除编辑或富编辑控件的只读样式(ES_READONLY)。 可以使用此宏或显式发送 EM_SETREADONLY 消息。
Edit_SetRect 设置编辑控件的格式矩形。 可以使用此宏或显式发送 EM_SETRECT 消息。
Edit_SetRectNoPaint 设置多行编辑控件的格式矩形。 此宏等效于 Edit_SetRect,只不过它不重新绘制编辑控件窗口。 可以使用此宏或显式发送 EM_SETRECTNP 消息。
Edit_SetSel 在编辑或富编辑控件中选择一系列字符。 可以使用此宏或显式发送 EM_SETSEL 消息。
Edit_SetTabStops 设置多行编辑或富编辑控件中的制表位。 当文本复制到控件时,文本中的任何制表符都会导致将空格生成到下一个制表位。 可以使用此宏或显式发送 EM_SETTABSTOPS 消息。
Edit_SetText 设置编辑控件的文本。
Edit_SetWordBreakProc 将编辑控件的默认 Wordwrap 函数替换为应用程序定义的 Wordwrap 函数。 可以使用此宏或显式发送 EM_SETWORDBREAKPROC 消息。
Edit_SetZoom 将缩放比例设置为 1/64 和 64 之间的任意位置。 可以使用此宏或显式发送 EM_SETZOOM 消息。
Edit_ShowBalloonTip 显示与编辑控件关联的气球提示。 可以使用此宏或显式发送 EM_SHOWBALLOONTIP 消息。
Edit_TakeFocus 供内部使用;不建议在应用程序中使用。
强制单行编辑控件接收键盘焦点。 可以使用此宏或显式发送 EM_TAKEFOCUS 消息。
Edit_Undo 撤消编辑或富编辑控件的撤消队列中的最后一个作。 可以使用此宏或显式发送 EM_UNDO 消息。

消息

主题 内容
EM_CANUNDO 确定编辑控件的撤消队列中是否有任何作。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_CHARFROMPOS 获取有关离编辑控件工作区中指定点最近的字符的信息。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_EMPTYUNDOBUFFER 重置编辑控件的撤消标志。 每当可以撤消编辑控件中的作时,都会设置撤消标志。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_FMTLINES 设置一个标志,该标志确定多行编辑控件是否包括软换行符。 软换行符由两个回车符和一个换行符组成,并插入到由于换字而断开的行的末尾。
EM_GETCARETINDEX 获取编辑控件中插入符号位置的从零开始的索引。
EM_GETCUEBANNER 获取在编辑控件中显示为文本提示或提示的文本。
EM_GETENDOFLINE 获取指定编辑控件的行尾字符。 可以显式发送此消息,也可以使用 Edit_GetEndOfLine 宏发送。
EM_GETEXTENDEDSTYLE 获取编辑控件的扩展样式。 显式发送此消息或使用 Edit_GetExtendedStyle 宏发送。
EM_GETFIRSTVISIBLELINE 获取多行编辑控件中最上端可见行的从零开始的索引。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_GETHANDLE 获取当前为多行编辑控件的文本分配的内存的句柄。
EM_GETHILITE 未实现。
EM_GETIMESTATUS 获取一组状态标志,这些标志指示编辑控件如何与输入法编辑器(IME)交互。
EM_GETLIMITTEXT 获取编辑控件的当前文本限制。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_GETLINE 从编辑控件复制一行文本并将其置于指定的缓冲区中。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_GETLINECOUNT 获取多行编辑控件中的行数。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_GETMARGINS 获取编辑控件的左右边距的宽度。
EM_GETMODIFY 获取编辑控件的修改标志的状态。 该标志指示是否修改了编辑控件的内容。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_GETPASSWORDCHAR 获取编辑控件在用户输入文本时显示的密码字符。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_GETRECT 获取编辑控件 格式矩形。 格式矩形是控件在其中绘制文本的限制矩形。 限制矩形独立于编辑控件窗口的大小。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_GETSEL 获取编辑控件中当前所选内容的起始和结束字符位置(TCHARs)。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_GETTHUMB 获取多行编辑控件垂直滚动条中滚动框(thumb)的位置。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_GETWORDBREAKPROC 获取当前 Wordwrap 函数的地址。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_GETZOOM 获取当前缩放比例,该比率始终介于 1/64 和 64 之间。 可以将此消息发送到编辑控件或丰富的编辑控件。 可以显式发送此消息,也可以使用 Edit_GetZoom 宏发送。
EM_HIDEBALLOONTIP 隐藏与编辑控件关联的任何气球提示。
EM_LIMITTEXT 设置编辑控件的文本限制。 文本限制是用户可键入编辑控件的最大文本量(TCHAR)。 可以将此消息发送到编辑控件或丰富的编辑控件。
对于编辑控件和Microsoft Rich Edit 1.0,使用字节。 对于 Microsoft Rich Edit 2.0 及更高版本,将使用字符。
EM_LINEFROMCHAR 获取包含多行编辑控件中指定字符索引的行的索引。 字符索引是编辑控件开头字符的从零开始的索引。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_LINEINDEX 获取多行编辑控件中指定行的第一个字符的字符索引。 字符索引是编辑控件开头字符的从零开始的索引。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_LINELENGTH 检索编辑控件中行的长度(以字符为单位)。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_LINESCROLL 滚动多行编辑控件中的文本。
EM_NOSETFOCUS 供内部使用;不建议在应用程序中使用。
防止单行编辑控件接收键盘焦点。 可以显式发送此消息,也可以使用 Edit_NoSetFocus 宏发送。
EM_POSFROMCHAR 检索编辑控件中指定字符的工作区坐标。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_REPLACESEL 将编辑控件或富编辑控件中的选定文本替换为指定的文本。
EM_SCROLL 在多行编辑控件中垂直滚动文本。 此消息等效于将 WM_VSCROLL 消息发送到编辑控件。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_SCROLLCARET 将插入点滚动到编辑控件的视图中。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_SETCARETINDEX 设置编辑控件中插入符号位置的从零开始的索引。
EM_SETCUEBANNER 设置编辑控件显示的文本提示或提示,以提示用户输入信息。
EM_SETENDOFLINE 设置指定编辑控件的行尾字符。 可以显式发送此消息,也可以使用 Edit_SetEndOfLine 宏发送。
EM_SETEXTENDEDSTYLE 设置编辑控件的扩展样式。 显式发送此消息或使用 Edit_SetExtendedStyle 宏发送。
EM_SETHANDLE 设置多行编辑控件将使用的内存的句柄。
EM_SETHILITE 未实现。
EM_SETIMESTATUS 设置确定编辑控件如何与 IME 交互的状态标志。
EM_SETLIMITTEXT 设置编辑控件的文本限制。 文本限制是用户可键入编辑控件的最大文本量(TCHAR)。 可以将此消息发送到编辑控件或丰富的编辑控件。
对于编辑控件和Microsoft Rich Edit 1.0,使用字节。 对于 Microsoft Rich Edit 2.0 及更高版本,将使用字符。
EM_SETLIMITTEXT 消息与 EM_LIMITTEXT 消息相同。
EM_SETMARGINS 设置编辑控件的左右边距的宽度。 该消息重新绘制控件以反映新边距。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_SETMODIFY 设置或清除编辑控件的修改标志。 修改标志指示编辑控件中的文本是否已修改。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_SETPASSWORDCHAR 设置或删除编辑控件的密码字符。 设置密码字符时,将显示该字符代替用户键入的字符。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_SETREADONLY 设置或删除编辑控件的只读样式(ES_READONLY)。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_SETRECT 设置多行编辑控件 格式矩形。 格式矩形是控件在其中绘制文本的限制矩形。 限制矩形与编辑控件窗口的大小无关。
此消息仅由多行编辑控件处理。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_SETRECTNP 设置多行编辑控件 格式矩形。 EM_SETRECTNP 消息与 EM_SETRECT 消息相同,但 EM_SETRECTNP 重新绘制编辑控件窗口。
格式矩形是控件在其中绘制文本的限制矩形。 限制矩形与编辑控件窗口的大小无关。
此消息仅由多行编辑控件处理。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_SETSEL 在编辑控件中选择一系列字符。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_SETTABSTOPS EM_SETTABSTOPS 消息设置多行编辑控件中的制表位。 当文本复制到控件时,文本中的任何制表符都会导致将空格生成到下一个制表位。
此消息仅由多行编辑控件处理。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_SETWORDBREAKPROC 将编辑控件的默认 Wordwrap 函数替换为应用程序定义的 Wordwrap 函数。 可以将此消息发送到编辑控件或丰富的编辑控件。
EM_SETZOOM 将缩放比例设置为 1/64 和 64 之间的任意位置。 可以将此消息发送到编辑控件或丰富的编辑控件。 可以显式发送此消息,也可以使用 Edit_SetZoom 宏发送。
EM_SHOWBALLOONTIP EM_SHOWBALLOONTIP 消息显示与编辑控件关联的气球提示。
EM_TAKEFOCUS 供内部使用;不建议在应用程序中使用。
强制单行编辑控件接收键盘焦点。 可以显式发送此消息,也可以使用 Edit_TakeFocus 宏发送。
EM_UNDO 此消息将撤消控件的撤消队列中的最后一个编辑控件作。 可以将此消息发送到编辑控件或丰富的编辑控件。
WM_UNDO 应用程序将 WM_UNDO 消息发送到编辑控件以撤消上一个作。 当此消息发送到编辑控件时,将还原以前删除的文本或删除以前添加的文本。

通知

主题 内容
EN_ALIGN_LTR_EC 当用户将编辑控件方向更改为从左到右时发送。 编辑控件的父窗口通过 WM_COMMAND 消息接收此通知代码。
EN_ALIGN_RTL_EC 当用户将编辑控件方向更改为从右到左时发送。 编辑控件的父窗口通过 WM_COMMAND 消息接收此通知代码。
EN_CHANGE 当用户执行了可能已更改编辑控件中的文本的作时发送。 与 EN_UPDATE 通知代码不同,此通知代码在系统更新屏幕后发送。 编辑控件的父窗口通过 WM_COMMAND 消息接收此通知代码。
EN_ERRSPACE 当编辑控件无法分配足够的内存以满足特定请求时发送。 编辑控件的父窗口通过 WM_COMMAND 消息接收此通知代码。
EN_HSCROLL 当用户单击编辑控件的水平滚动条时发送。 编辑控件的父窗口通过 WM_COMMAND 消息接收此通知代码。 在更新屏幕之前,会通知父窗口。
EN_KILLFOCUS 当编辑控件失去键盘焦点时,将发送 EN_KILLFOCUS 通知代码。 编辑控件的父窗口通过 WM_COMMAND 消息接收此通知代码。
EN_MAXTEXT 当当前文本插入超过编辑控件的指定字符数时发送。 文本插入已被截断。
当编辑控件没有 ES_AUTOHSCROLL 样式且要插入的字符数超过编辑控件的宽度时,也会发送此消息。
当编辑控件没有 ES_AUTOVSCROLL 样式并且文本插入产生的行总数超过编辑控件的高度时,也会发送此消息。
编辑控件的父窗口通过 WM_COMMAND 消息接收此通知代码。
EN_SETFOCUS 编辑控件接收键盘焦点时发送。 编辑控件的父窗口通过 WM_COMMAND 消息接收此通知代码。
EN_UPDATE 编辑控件即将重新绘制自身时发送。 此通知代码在控件格式化文本之后发送,但在显示文本之前。 这样就可以根据需要调整编辑控件窗口的大小。 编辑控件的父窗口通过 WM_COMMAND 消息接收此通知代码。
EN_VSCROLL 当用户单击编辑控件的垂直滚动条或用户滚动鼠标滚轮在编辑控件上时发送。 编辑控件的父窗口通过 WM_COMMAND 消息接收此通知代码。 在更新屏幕之前,会通知父窗口。
WM_CTLCOLOREDIT 未只读或禁用的编辑控件将在控件即将绘制时将 WM_CTLCOLOREDIT 消息发送到其父窗口。 通过响应此消息,父窗口可以使用指定的设备上下文句柄设置编辑控件的文本和背景色。

结构

主题 内容
EDITBALLOONTIP 包含有关与按钮控件关联的气球提示的信息。

常数

主题 内容
编辑控件样式 若要使用 CreateWindowCreateWindowEx 函数创建编辑控件,请指定 EDIT 类、适当的窗口样式常量以及以下编辑控件样式的组合。 创建控件后,无法修改这些样式,除非另有说明。