用mfc写一个多文档程序
时间: 2023-12-03 07:04:58 浏览: 75
以下是一个简单的MFC多文档程序:
1. 创建一个MFC应用程序,选择多文档应用程序类型。
2. 在资源视图中,打开IDD_ABOUTBOX对话框,并添加一个编辑框控件ID为IDC_EDIT_ABOUT。
3. 在资源视图中,打开IDR_MAINFRAME菜单资源,并添加一个菜单项ID为ID_FILE_NEW_WINDOW。
4. 打开CMainFrame类的头文件,在protected区域添加如下代码:
afx_msg void OnFileNewWindow();
5. 打开CMainFrame类的实现文件,在BEGIN_MESSAGE_MAP宏和END_MESSAGE_MAP宏之间添加如下代码:
ON_COMMAND(ID_FILE_NEW_WINDOW, OnFileNewWindow)
6. 实现OnFileNewWindow函数:
void CMainFrame::OnFileNewWindow()
{
// 创建新的文档
CMDIChildWnd* pChild = (CMDIChildWnd*)pDocTemplate->CreateNewFrame(pDoc, NULL);
if (pChild == NULL) {
return;
}
pDocTemplate->InitialUpdateFrame(pChild, pDoc);
}
7. 打开CMyApp类的实现文件,在InitInstance函数中添加如下代码:
// 注册新的命令
CString strFileNewWindow;
strFileNewWindow.LoadString(IDS_FILE_NEW_WINDOW);
m_pMainWnd->GetMenu()->AppendMenu(MF_STRING, ID_FILE_NEW_WINDOW, strFileNewWindow);
8. 打开CMyDoc类的头文件,在protected区域添加如下代码:
CString m_strText;
9. 打开CMyDoc类的实现文件,在Serialize函数中添加如下代码:
ar & m_strText;
10. 打开CMyView类的头文件,在protected区域添加如下代码:
CEdit m_edit;
11. 打开CMyView类的实现文件,在OnInitialUpdate函数中添加如下代码:
CRect rcClient;
GetClientRect(&rcClient);
m_edit.Create(WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL, rcClient, this, IDC_EDIT);
m_edit.SetWindowText(m_pDocument->m_strText);
12. 打开CMyView类的实现文件,在OnUpdate函数中添加如下代码:
m_edit.SetWindowText(m_pDocument->m_strText);
现在,你已经创建了一个简单的MFC多文档程序。你可以通过菜单项或快捷键Ctrl+N创建新的文档窗口,并在窗口中编辑文本。每个文档窗口都有自己的编辑框控件,并且可以保存和加载文本内容。