CEdit

CObject
 └CCmdTarget
    └CWnd
       └CEdit

CEdit类提供了Windows编辑控件中的功能。编辑控件是一个子窗口矩形,用户可以向其中输入文本。
可以通过对话模板或直接从代码中创建一个编辑控件。在两种情形下,首先调用CEdit构造程序构造CEdit对象,再调用Create成员函数创建Windows编辑控件并将其与CEdit对象连接。
构造在CEdit的派生类中可以单步实现。为派生类编写构造程序并从构造程序中调用Create。
CEdit从CWnd继承了重要的功能,要在CEdit对象中设置或获取文本,使用CWnd成员函数SetWindowText和GetWindowText,可以设置和得到编辑控件的全部内容,即使它是一个多行控件。如果编辑控件是多行的,使用CEdit成员函数GetLine,GetSel,GetSel和ReplaceSel来获取和写入控件的部分文本。
如果要处理编辑控件发往其父类(通常是一个CDialog派生类)的通知消息,则向父类中为每一消息添加一个消息映射入口和消息处理成员函数。
各消息映射入口可采用如下形式:
ON_Notification(id,memberFxn)
其中id指定了发送通知的编辑控件的子窗口ID,memberFxn为你写好的处理通知的父成员函数的名字。
父函数形式如下:
afx_msg void memberFxn();
下面是一组可能的消息映射入口,以及在何种情况下向父类发送的描述:
·ON_EN_CHANGE用户采取的行动可能会改变编辑控件的文本。与EN_UPDATE通知消息不同,该通知是在Windows更新显示之后发送的。
·ON_EN_ERRSPACE编辑控件不能为特定请求分配足够的空间。
·ON_EN_HSCROLL用户单击了编辑控件中的水平滚动条,父窗口在屏幕更新之前被通知。
·ON_EN_KILLFOCUS编辑控件失去输入焦点。
·ON_EN_MAXTEXT当前输入超过了为编辑控件指定的数目,并作截尾处理。当编辑控件不具有ON_EN_HSCROLL风格且要输入的字符会超过编辑控件的宽度时,发送消息。当编辑控件不具有ON_EN_VSCROLL风格且要输入的字符会超过编辑控件的高度时,也会发送消息。
·ON_EN_SETFOCUS编辑控件获得焦点。
·ON_EN_UPDATE编辑控件将要显示变动的文本。在控件对文本格式化之后但在显示文本之前发送消息,以便在必要时改变窗口尺寸。
·ON_EN_VSCROLL用户单击了编辑控件中的垂直滚动条,父窗口在屏幕更新之前被通知。
如果在对话框内创建CEdit对象,CEdit对象在用户关闭对话框时自动被删除。
如果使用对话框编辑器从对话资源中创建CEdit对象,CEdit对象在用户关闭对话框时自动被删除。
如果在窗口内创建CEdit对象,也需要删除它。如果在栈上创建CEdit对象,它被自动删除。如果使用new函数在堆上创建CEdit对象,在用户中止编辑控件时,必须对其调用delete来删除它。如果在CEdit对象中分配存储空间,覆盖CEdit析构程序来处理分配情况。
关于CEdit的更多信息,请参阅联机文档“Visual C++程序员指南”中的“控件主题”。
#include <afxwin.h>

请参阅:
CWnd, CButton, CComboBox, CListBox, CScrollBar, CStatic, CDialog


CEdit类的成员

构造函数
CEdit构造一个CEdit控件对象
Create创建一个Windows编辑控件,并将其与CEdit对象连接

属性
CanUndo决定一个编辑控件操作是否能够被撤销
GetLineCount获得多行编辑控件中的行数
GetModify决定编辑控件的内容是否被修改
SetModify为编辑控件设置或清除修改标记
GetRect为编辑控件获取格式化的矩形
GetHandle获得为当前多行编辑控件分配的内存的句柄
SetHandle设置为多行编辑控件使用的本地内存的句柄
SetMargins为CEdit设置左边和右边的空白边界
GetMargins获得为CEdit设置左边和右边的空白边界
SetLimitText设置CEdit能够容纳的文本的最大量
GetLimitText获得CEdit能够容纳的文本的最大量
PosFromChar获得指定字符索引的左上角的坐标
CharFromPos获得最靠近指定位置的字符的行和字符索引
GetLine从编辑控件中获得一行文本
GetPasswordChar获得当用户输入文本时在编辑控件中显示的口令
GetFirstVisibleLeLine决定在编辑控件中最顶部的可视的行

操作
EmptyUndoBuffer重新设置(清除)编辑控件的撤销标记
FmtLines设置在多行编辑控件中的软回车打开或关闭
LimitText用户在输入文本时的文本长度限制
LineFromChar获得包含指定字符索引的行的数目
LineIndex获得在多行编辑控件中的某行的字符索引
LineLength获得编辑控件中的行的长度
LineScroll在多行编辑控件中滚动文本
ReplaceSel用指定文本覆盖编辑控件中当前被选中的文本
SetPasswordChar设置或清除当用户输入文本时在编辑控件中显示的口令
SetRect设置多行编辑控件的带格式的矩形,并更新该控件
SetRectNP设置多行编辑控件的带格式的矩形,而不必重新绘制
SetSel在编辑控件中选定文本SetTabStops设置多行编辑控件的制表键停顿位
SetReadOnly为编辑控件设置只读状态

剪贴板操作
Undo撤销上一次的编辑控件操作
Clear删除(清除)编辑控件中当前选中的文本
Copy将编辑控件中的当前选中文本以CF_TEXT格式拷贝到剪贴板中
Cut删除编辑控件中当前选中的文本,并将删除的文本以CF_TEXT格式拷贝到剪贴板中
Paste在当前光标位置插入剪贴板内的文本。只有在剪贴板数据为CF_TEXT格式时才进行插入