之前我们剖析了一个最简单的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