子框架ChildFrm的增加与修改:
1、首先在在Headers files和source files中分别添加文件,设其名字为ChileFrm.h及ChildFrm.cpp,并将自己在外部新建的多文档工程中的ChildFrm的.h及.cpp文件中的代码复制过去,注意:将.cpp中的app文件头文件改为自己的工程名.h;
主框架MainFrm的修改:
2、在主框架MainFrm的.h中的DECLARE_DYNCREATE(CMainFrame)和.cpp文件中的DECLARE_DYNAMIC(CMainFrame, CFrameWnd)
改为IMPLEMENT_DYNAMIC(CMainFrame) DECLARE_DYNAMIC(CMainFrame,CMDIFrameWnd)
3、将CmainFrm的继承类都改为CMDIFrameWnd
4.将CmainFrm的构造函数由protected改为public
App类ProjectName的修改:
5、在cpp文件中加上子框架的头文件;
6:、BOOL CWanderApp::InitInstance()的修改:
(1)CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(IDR_MainFrmTYPE,
RUNTIME_CLASS(CWanderDoc),
RUNTIME_CLASS(CMainFrmFrame), // 主 MDI 框架窗口
RUNTIME_CLASS(CWanderView));
改为:CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_ProjectNameTYPE,
RUNTIME_CLASS(CWanderDoc),
RUNTIME_CLASS(CChildFrame), // 主 MDI 框架窗口
RUNTIME_CLASS(CWanderView));
其中IDR_ProjectNameTYPE可在Resoures.h中找到;
7、在AddDocTemplate(pDocTemplate);与CCommandLineInfo cmdInfo;之间加上以下代码一创建主框架:
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
{
delete pMainFrame;
return FALSE;
}
m_pMainWnd = pMainFrame;
注意:只要在ProcessShellCommand(cmdInfo)之前创建即可。