用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、运行之,编辑功能可以了。
评论