windows程序设计(21):剖析单文档架构

这篇博客深入剖析了Windows程序设计中的单文档架构,重点关注3个关键点:InitInstance的处理、DECLARE_DYNCREATE和IMPLEMENT_DYNCREATE宏的使用。这些变化在实现类的动态创建和“准虚函数”机制中起到重要作用,使得CSingleDocTemplate能将不同类挂接在一起,而CWinApp则通过DECLARE_DYNAMIC宏实现类似功能。
摘要由CSDN通过智能技术生成
之前我们剖析了一个最简单的MFC程序,有了这个基础,我们就可以剖析一个MFC的单文档应用程序了。

大概浏览了一下,我们发现3处不一样(而不是增加)的地方:

1.InitInstance

	pDocTemplate = new CSingleDocTemplate(
		IDR_MAINFRAME,
		RUNTIME_CLASS(CSingleDocDoc),
		RUNTIME_CLASS(CMainFrame),       // 主 SDI 框架窗口
		RUNTIME_CLASS(CSingleDocView));



跟最基本的:

	m_pMainWnd = new CMainWindow;

很像。

2.框架类的声明中多了DECLARE_DYNCREATE(CMainFrame)宏
3..框架类的实现中多了IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)宏

这是我们这次要讨论的3个重点。

先看第一点,我们将RUNTIME_CLASS宏展开:

	pDocTemplate = new CSingleDocTemplate(
		IDR_MAINFRAME,
/*		RUNTIME_CLASS(CTest1Doc),
		RUNTIME_CLASS(CMainFrame),       // main SDI frame window
		RUNTIME_CLASS(CTest1View));
*/
(CRuntimeClass*)(&a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值