1,新建,工程,MFC AppWizard(exe),(名字定一个,例如:TextEdit)。2,工程选择采用对话框模式。3,把对话框上的按钮全部删除,并添加一个RICHEDIT控件。4,打开TextEdit.cpp文件,在“BOOL CTextEditApp::InitInstance()”函数的第一行添加一行:“::AfxInitRichEdit();”5,打开MFC ClassWizard 的 MemberVariables,为IDC_RICHEDIT1添加一个控件名“m_MyRichEdit”6,运行一下,可以看到界面了。7,点“插入”-“资源”,增加一个菜单资源(IDR_MENU1)。8,打开菜单资源,添加菜单:“文件”(根目录)“新建”ID_MEMU_FILE_NEW“打开”ID_MEMU_FILE_OPEM“保存”ID_MEMU_FILE_SAVE“退出”ID_MEMU_FILE_EXIT“编辑”(根目录) 。。。等等9,将菜单资源装入程序中,做法是在对话框类定义中添加以下代码:class CTextEditDlg : public CDialog{...... CMenu m_menu;......}然后在对话框类的初始化函数中添加代码:BOOL CTextEditDlg::OnInitDialog(){ CDialog::OnInitDialog();...... //加载菜单 m_menu.LoadMenu(IDR_MENU1); //设置当前菜单 SetMenu(&m_menu); //当你不需要菜单时可以用 SetMenu(NULL);来取消当前菜单......}10,运行一下,这时候菜单应出现了。11,然后在MFC ClassWizard 为每个菜单项目添加响应函数,具体代码如下:void CTextEditDlg::OnMemuFileOpen() {//显示文件打开对话框CFileDialog dlg(TRUE, "SQL", "*.txt",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"Text Files(*.txt)|*.txt|SQL Files(*.sql)|*.sql|All Files(*.*)|*.*||"); if ( dlg.DoModal()!=IDOK ) return;//获取文件的绝对路径CString sFileName=dlg.GetPathName();//打开文件CStdioFile out;out.Open(sFileName, CFile::modeRead);CString sSql="",s;//读取文件do{out.ReadString(s);sSql=sSql+s+(char)10;}while (out.GetPosition()!=out.GetLength());out.Close(); m_MyRichEdit.SetWindowText(sSql); } void CTextEditDlg::OnMemuFileNew() {m_MyRichEdit.SetWindowText(""); } void CTextEditDlg::OnMemuFileSave() {//显示文件保存对话框CFileDialog dlg(FALSE, "SQL", "*.txt",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"Text Files(*.txt)|*.txt|SQL Files(*.sql)|*.sql|All Files(*.*)|*.*||"); if ( dlg.DoModal()!=IDOK ) return;//获取文件的绝对路径CString sFileName=dlg.GetPathName();CStdioFile out;//打开文件out.Open(sFileName, CFile::modeCreate | CFile::modeWrite);//保存文件CString sSql;m_MyRichEdit.GetWindowText(sSql);out.WriteString(sSql);out.Close();} void CTextEditDlg::OnMemuFileExit() {exit(0);} void CTextEditDlg::OnSize(UINT nType, int cx, int cy) //让RICHEDIT自动填满窗体{ CDialog::OnSize(nType, cx, cy); // TODO: Add your message handler code here CRect rect; if (m_MyRichEdit.GetSafeHwnd()) { GetClientRect(&rect); //rect.top += 5; //rect.DeflateRect(5,5); m_MyRichEdit.MoveWindow(rect); }}8,记得把RICHEDIT的属性中构选Multiline,对话框的属性中构选Title bar、System menu、Minimize box、Maxmize box。9,再运行一次,文本编辑器做完....

评论