MFC单文档(SDI)转换成多文档(MDI)解决方案
来源:互联网 发布:软件系统介绍ppt模板 编辑:程序博客网 时间:2024/05/14 04:36
由VC6.0自动生成的单文档和多文档工程存在着细微的区别,那么怎样将一个自动生成的单文档工程转换成为一个多文档工程呢?这个问题虽然比较简单,稍微细心一点的人都可以自己搞定。在这里,我为大家提供一个比较常见的修改方法,没有什么技术含量,还请大家多提意见!
第一步:修改字符串表
添加新项ID为IDR_MYTEST,值为:
/nTest/nTest/n/n/nTest.Document/nTest Document
第二步:修改app的InitInstance()方法
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(
IDR_MYECG, //工程名
RUNTIME_CLASS(CEcgDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CEcgView));
AddDocTemplate(pDocTemplate);
// create main MDI Frame window
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;
第三步:修改CMainFrame,它几乎和SDI版本完全一样,除了它是CMDIFrameWnd而不是CFrameWnd派生出来的。
头文件中:
class CMainFrame : public CMDIFrameWnd
cpp文件中:
IMPLEMENT_DYNCREATE(CMainFrame, CMDIFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
其它的地方的CFrameWnd也都得改过来。
第四步:添加派生自CMDIChildWnd的子框架类。
用户可以通过在PreCreateWindow()函数中添加代码方便的控制子框架窗口的属性。也可以映射消息和重载其他的虚拟函数。
具体代码我就不贴出来了,大家可以直接从一个生成的MDI工程中直接将其拷贝过来。
OK,over!
- MFC单文档(SDI)转换成多文档(MDI)解决方案
- MFC单文档(SDI)转换成多文档(MDI)解决方案
- MFC单文档SDI
- 单文档(SDI)和多文档(MDI)
- 单文档(SDI)、多文档(MDI)框架的应用汇总文件.
- MFC SDI单文档应用程序贴图
- 浅谈MFC单文档(SDI)程序
- MFC SDI单文档 状态栏 进度条 启动画面编程技巧 ...
- MFC单文档(SDI)全屏程序实现方法
- 创建无边框的MFC单文档(SDI)应用程序
- MFC由多文档转换为单文档
- MFC由多文档转换为单文档
- MFC多文档(MDI)去边框
- VC6.0 怎样将MFC的单文档程序转换成多文档
- SDI或MDI中获得某个文档模板的视图
- SDI和MDI获得文档和视图对象的方法
- MFC SDI单文档多视图的实现及自由切换(2种实现方式简析)
- MFC SDI单文档多视图的实现及自由切换(2种实现方式简析)
- 密码强弱度检测万能插件
- 889
- Spring Security-SecurityContext
- Mac OS X Leopard与目录服务(AD/OD)集成宝典 (2)
- 系统程序员成长计划-组合的威力(二)
- MFC单文档(SDI)转换成多文档(MDI)解决方案
- MVC详解:了解真正所谓的"框架"
- The C++ In-Depth Series
- 实现iFrame自适应高度,原来很简单!
- 企业信息化如何破冰(一)
- 学嵌入式必须掌握的经验
- 如何编程清除IE缓存收藏
- 数据库表结构生成语句
- 应用最广的十大Javascript框架