MFC - 编辑框
一个**编辑框**是一个矩形的子窗口,用户可以在其中输入文本。它由**CEdit 类**表示。
序号 |
名称及描述 |
1 |
CanUndo 确定是否可以撤消编辑控件的操作。 |
2 |
CharFromPos 检索最接近指定位置的字符的行和字符索引。 |
3 |
Clear 删除(清除)编辑控件中的当前选择(如果有)。 |
4 |
Copy 将编辑控件中的当前选择(如果有)复制到剪贴板中,格式为**CF_TEXT**。 |
5 |
Create 创建 Windows 编辑控件并将其附加到 CEdit 对象。 |
6 |
Cut 删除(剪切)编辑控件中的当前选择(如果有),并将已删除的文本复制到剪贴板中,格式为 CF_TEXT。 |
7 |
EmptyUndoBuffer 重置(清除)编辑控件的撤消标志。 |
8 |
FmtLines 设置多行编辑控件中是否包含软换行符。 |
9 |
GetCueBanner 检索在编辑控件为空且未获得焦点时显示为文本提示或提示的文本。 |
10 |
GetFirstVisibleLine 确定编辑控件中最顶端可见的行。 |
11 |
GetHandle 检索当前为多行编辑控件分配的内存的句柄。 |
12 |
GetHighlight 获取当前编辑控件中突出显示的文本范围的起始和结束字符的索引。 |
13 |
GetLimitText 获取此**CEdit**可以包含的最大文本量。 |
14 |
GetLine 从编辑控件中检索一行文本。 |
15 |
GetLineCount 检索多行编辑控件中的行数。 |
16 |
GetMargins 获取此 CEdit 的左右边距。 |
17 |
GetModify 确定编辑控件的内容是否已修改。 |
18 |
GetPasswordChar 检索用户输入文本时在编辑控件中显示的密码字符。 |
19 |
GetRect 获取编辑控件的格式化矩形。 |
20 |
GetSel 获取编辑控件中当前选择的第一个和最后一个字符位置。 |
21 |
HideBalloonTip 隐藏与当前编辑控件关联的任何气泡提示。 |
22 |
LimitText 限制用户可以输入到编辑控件中的文本长度。 |
23 |
LineFromChar 检索包含指定字符索引的行号。 |
24 |
LineIndex 检索多行编辑控件中一行的字符索引。 |
25 |
LineLength 检索编辑控件中一行的长度。 |
26 |
LineScroll 滚动多行编辑控件的文本。 |
27 |
Paste 将剪贴板中的数据插入到编辑控件的当前光标位置。仅当剪贴板包含 CF_TEXT 格式的数据时才插入数据。 |
28 |
PosFromChar 检索指定字符索引左上角的坐标。 |
29 |
ReplaceSel 用指定的文本替换编辑控件中的当前选择。 |
30 |
SetCueBanner 设置在编辑控件为空且未获得焦点时显示为文本提示或提示的文本。 |
31 |
SetHandle 设置多行编辑控件将使用的本地内存的句柄。 |
32 |
SetHighlight 突出显示当前编辑控件中显示的文本范围。 |
33 |
SetLimitText 设置此 CEdit 可以包含的最大文本量。 |
34 |
SetMargins 设置此 CEdit 的左右边距。 |
35 |
SetModify 设置或清除编辑控件的修改标志。 |
36 |
SetPasswordChar 设置或删除用户输入文本时在编辑控件中显示的密码字符。 |
37 |
SetReadOnly 设置编辑控件的只读状态。 |
38 |
SetRect 设置多行编辑控件的格式化矩形并更新控件。 |
39 |
SetRectNP 设置多行编辑控件的格式化矩形,无需重绘控件窗口。 |
40 |
SetSel 选择编辑控件中的一系列字符。 |
41 |
SetTabStops 设置多行编辑控件中的制表位。 |
42 |
ShowBalloonTip 显示与当前编辑控件关联的气泡提示。 |
43 |
Undo 反转上次编辑控件操作。 |
消息 |
映射项 |
描述 |
EN_CHANGE |
ON_EN_CHANGE( <id>, <memberFxn> ) |
用户执行了可能已更改编辑控件中文本的操作。 |
EN_ERRSPACE |
ON_EN_ERRSPACE( <id>, <memberFxn> ) |
编辑控件无法分配足够的内存来满足特定请求。 |
EN_HSCROLL |
ON_EN_HSCROLL( <id>, <memberFxn> ) |
用户单击编辑控件的水平滚动条。在屏幕更新之前通知父窗口。 |
EN_KILLFOCUS |
ON_EN_KILLFOCUS( <id>, <memberFxn> ) |
编辑控件失去输入焦点。 |
MAXTEXT |
ON_MAXTEXT( <id>, <memberFxn> ) |
当前插入已超过编辑控件指定的字符数,并已被截断。 |
EN_SETFOCUS |
ON_EN_SETFOCUS( <id>, <memberFxn> ) |
编辑控件获得输入焦点时发送。 |
EN_UPDATE |
ON_EN_UPDATE( <id>, <memberFxn> ) |
编辑控件即将显示已更改的文本。在控件格式化文本之后但屏幕显示文本之前发送,以便根据需要更改窗口大小。 |
EN_VSCROLL |
ON_EN_VSCROLL( <id>, <memberFxn> ) |
用户单击编辑控件的垂直滚动条。在屏幕更新之前通知父窗口。 |
让我们通过创建一个新的基于 MFC 对话框的项目来了解一个简单的示例。
**步骤 1** - 删除静态文本控件的标题,并拖动一个按钮和一个编辑控件。
**步骤 2** - 为编辑控件添加一个控件变量 m_editCtrl,为静态文本控件添加一个值变量 m_strTextCtrl。
**步骤 3** - 为按钮单击事件添加事件处理程序。
**步骤 4** - 以下是按钮单击事件的事件处理程序的实现。
void CMFCEditDlg::OnBnClickedButton1() {
// TODO: Add your control notification handler code here
CString str = _T("");
m_editCtrl.GetWindowTextW(str);
if (!str.IsEmpty())
m_strTextCtrl = str;
else
m_strTextCtrl = _T("Write Something");
UpdateData(FALSE);
}
**步骤 5** - 编译并执行上述代码后,您将看到以下内容。
**步骤 6** - 当您在编辑控件中写入文本并单击“显示”时,它将更新静态文本控件上的文本。
mfc_windows_controls.htm