在已有两个文档的基础上,在MFC中再增加一个文档MyMdi3,为什么按步骤做的,结果还是不显示有第三个文档,详细说说应该检查哪里,请带上代码
时间: 2024-03-24 11:39:23 浏览: 22
在MFC中添加第三个文档MyMdi3时,需要检查以下几个方面:
1. 确保已经在项目中添加了MyMdi3类,并且已经进行了相应的文件操作,例如在资源文件中添加了MyMdi3的图标、ID等。
2. 确保在MainFrm.cpp文件中添加了打开MyMdi3文档的菜单项或工具栏按钮。例如,在OnCreate()函数中添加以下代码:
```
m_wndToolBar.AddButton(ID_MYMDI3, _T("MyMdi3"));
```
3. 确保在MainFrm.cpp文件中添加了处理打开MyMdi3文档的消息响应函数。例如,在OnCommand()函数中添加以下代码:
```
case ID_MYMDI3:
OpenDocumentFile(NULL); // 打开MyMdi3文档
break;
```
4. 确保在MyApp.cpp文件中添加了MyMdi3文档的工厂类。例如,在InitInstance()函数中添加以下代码:
```
CMultiDocTemplate* pMyMdi3Template;
pMyMdi3Template = new CMultiDocTemplate(IDR_MYMDI3TYPE,
RUNTIME_CLASS(CMyMdi3Doc),
RUNTIME_CLASS(CChildFrame), // 自定义的子窗口框架类
RUNTIME_CLASS(CMyMdi3View));
if (!pMyMdi3Template)
return FALSE;
AddDocTemplate(pMyMdi3Template);
```
5. 确保在CMyMdi3Doc.cpp文件中正确设置了文档的标题、大小、位置等属性。例如,在CMyMdi3Doc构造函数中添加以下代码:
```
SetTitle(_T("MyMdi3"));
SetDocSize(CSize(400, 300));
SetDocPos(CPoint(100, 100));
```
6. 确保在CMainFrame.cpp文件中正确添加了MyMdi3文档。例如,在CMainFrame构造函数中添加以下代码:
```
m_MyMdi3Doc = (CMyMdi3Doc*)AddNewFrame(RUNTIME_CLASS(CMyMdi3Doc));
```
如果以上步骤都正确执行了,但仍然无法显示第三个文档,请检查一下其他代码逻辑问题,例如是否正确设置了文档和视图的类等。
希望以上信息能够帮助你解决问题。