正文

用VC++做一个象模象样的记事本(文本编辑器)续12006-12-29 14:27:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/otot/22042.html

分享到:

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

阅读(6402) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册