释义 |
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格式时才进行插入 |
|