MFC由多文档转换为单文档

问题背景:
最近做了一个工程,开始时是用多文档创建的,用到了CSplitter划分为四个窗格,代码放在MainFrame里面。但我想获得文档时总是出错。后来通过调试发现编译时是先编译的视类再编译的文档类,通过上网查资料,最后决定改为单文档。
多文档改单文档步骤:
1.首先找到CXxxApp类里的InitInstance函数 (其中Xxx为你自己创建的类名称)
将多文档模块改为添加单文档模块
CSingleDocTemplate * pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_XxxTYPE,
//IDR_MAINFRAME,
RUNTIME_CLASS(CXxxDoc),
RUNTIME_CLASS(CMainFrame), // custom MDI child frame
RUNTIME_CLASS(CXxxView));
AddDocTemplate(pDocTemplate);

注释掉接下来的部分
// create main MDI Frame window
/* CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;*/

将下列代码
// The main window has been initialized, so show and update it.
/* pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();*/
改为:
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();


2.找到CMainFram函数,将其继承关系改为:CFrameWnd(注意:h文件和cpp文件都要改,最好用菜单下的replace,选中Match the Whole Word)

3.将CMainFrame里面的头文件里的宏改为DECLARE_DYNCREATE(CMainFrame),cpp里面的改为IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)...

注意你的第一步添加文档模块时的第一个参数IDR_XxxTYPE,//IDR_MAINFRAME,这两个都试一下,因为有可能你在编程过程中改过资源。

心得:在出现问题后需要静下来一步步跟踪,直到发现问题,并试着自己去解决!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值