MFC单文档与多文档

使用AppWizard创建SDI和MDI的过程相似,主要区别是创建SDI时不生成CChildFrame类,CMainFrame类的基类为CMainWnd;而在创建MDI时会生成两个框架类,一个是CMainFrame类,由CMDIFrameWnd类派生而来,另一个是CChildFrame类,由CMDIChildWnd类派生而来。

在SDI的CMainFrame对象不但构成了应用程序框架,也包含了视图对象。在MDI中,CMainFrame对象是在应用程序类的InitInstance中被创建,而视图则被包含在CChildFrame对象中。

单文档(SDI)应用程序在一个主框架上只有一个子框架窗口,如图3-5-1所示:

图3-5-1 单文档应用程序示例

多文档(MDI)应用程序在一个主框架上可以有多个子框架窗口,如图3-5-2所示:

图3-5-2  多文档应用程序示例