用VC++做一个象模象样的记事本(文本编辑器)续1之前步骤见《用VC++做一个象模象样的记事本(文本编辑器)》 接下来准备为文本编辑器添加编辑菜单。1、<插入>-<新建类>,添加一个新的类,以便对RICHEDIT控件进行更好的操作。 类名:CMyRichEdit( BaseClass: CRichEditCtrl ),添加完毕会增加MyRichEdit.h和MyRichEdit.cpp两个新文件。2、在对话框主文件“TextEditDlg.h”的开头,引入刚刚新添加的类的头文件:“ #include "MyRichEdit.h" ”3、在CTextEditDlg类的定义中,改变原来RICHEDIT控件的类:class CTextEditDlg : public CDialog{......//CRichEditCtrl m_MyRichEdit; //原来 CMyRichEdit m_MyRichEdit; //现在......}4、为新建的CMyRichEdit类添加一些编辑处理函数(大多数继承CRICHEDITCTRL的处理函数就可以了):(MyRichEdit.h)class CMyRichEdit : public CRichEditCtrl{......protected: //{{AFX_MSG(CMyRichEdit) afx_msg void OnRButtonDown(UINT nFlags, CPoint point);//点击右键弹出菜单的函数,不需手工添加 afx_msg void OnCopy() { Copy(); } afx_msg void OnCut() { Cut(); } afx_msg void OnPaste() { Paste(); } afx_msg void OnUndo() { Undo(); }......}5、打开程序的菜单资源,添加以下菜单:“编辑”(根目录)“复制”ID_MEMU_EDIT_COPY“剪切”ID_MEMU_EDIT_CUT“粘贴”ID_MEMU_EDIT_PASTE“撤回”ID_MEMU_EDIT_UNDO ...等等6、打开MFC ClassWizard 的MessageMaps,为刚才添加的各个菜单项,添加COMMAND响应函数:(TextEditDlg.cpp)void CTextEditDlg::OnMenuEditCopy() {CTextEditDlg::m_MyRichEdit.Copy();}void CTextEditDlg::OnMenuEditCut() {CTextEditDlg::m_MyRichEdit.Cut();}void CTextEditDlg::OnMenuEditPaste() {CTextEditDlg::m_MyRichEdit.Paste(); }void CTextEditDlg::OnMenuEditUndo() {CTextEditDlg::m_MyRichEdit.Undo(); }7、运行之,编辑功能可以了。

评论