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