412典型的MD应用程序的构成 如果是SD应用程序,从 CFramewnd类派生边框窗口 类,边框窗口的客户子窗口( MDIClient直接包含视窗口。 如果要支持工具条、状态栏,则派生的主边框窗口类还 要添加 CTooBari和 STatusbar类型的成员变量,并且要在 个 On create消息处理函数中初始化这两个控制窗口。 主边框窗口用来管理文档边框窗口、视窗口、工具条、 菜单、加速键等,协调半模式状态(如上下文的帮助 ( SHIFT+F1模式)和打印预览)
如果是SDI应用程序,从CFrameWnd类派生边框窗口 类,边框窗口的客户子窗口(MDIClient)直接包含视窗口。 如果要支持工具条、状态栏,则派生的主边框窗口类还 要添加CToolBar和CStatusBar类型的成员变量,并且要在一 个OnCreate消息处理函数中初始化这两个控制窗口。 主边框窗口用来管理文档边框窗口、视窗口、工具条、 菜单、加速键等,协调半模式状态(如上下文的帮助 (SHIFT+F1模式)和打印预览)。 4.1.2 典型的MDI应用程序的构成
412典型的MD应用程序的构成 (3)文档边框窗口 CChildframe 文档边框窗口类从 CMDIChildwnd类派生,MD应用 程序使用文档边框窗口来包含视窗口。 (4)文档 CTOc 文档类从 CDocument类派生,用来管理数据,数据的 变化、存取都是通过文档实现的。视窗口通过文档对象来 访问和更新数据
(3) 文档边框窗口CChildFrame 文档边框窗口类从CMDIChildWnd类派生,MDI应用 程序使用文档边框窗口来包含视窗口。 (4) 文档CTDoc 文档类从CDocument类派生,用来管理数据,数据的 变化、存取都是通过文档实现的。视窗口通过文档对象来 访问和更新数据。 4.1.2 典型的MDI应用程序的构成
412典型的MD应用程序的构成 (5)视图CTⅤiew 视类从CⅤiew或它的派生类派生。视和文档联系在 起,在文档和用户之间起中介作用,即视图在屏幕上显示 文档的内容,并把用户输入转换成对文档的操作。 (6)文档模板 文档模板类一般不需要派生。MD应用程序使用多文 档模板类 CMultiDoc Template;SD应用程序使用单文档模 板类 SIngle Doc Template 应用程序通过文档模板类对象来管理上述对象(应用 程序对象、文档对象、主边框窗口对象、文档边框窗口对 象、视图对象)的创建
(5) 视图CTView 视类从CView或它的派生类派生。视和文档联系在一 起,在文档和用户之间起中介作用,即视图在屏幕上显示 文档的内容,并把用户输入转换成对文档的操作。 (6) 文档模板 文档模板类一般不需要派生。MDI应用程序使用多文 档模板类CMultiDocTemplate;SDI应用程序使用单文档模 板类CSingleDocTemplate。 应用程序通过文档模板类对象来管理上述对象(应用 程序对象、文档对象、主边框窗口对象、文档边框窗口对 象、视图对象)的创建。 4.1.2 典型的MDI应用程序的构成
412典型的MD应用程序的构成 2.构成应用程序的对象之间的关系P88 用图的形式可直观地表示所涉及的MFC类的继承或者派 生关系。 Cob ject CCmdTarget CWinThread CDoc Tempatel cdocument CWnd CWinApp CFrame Wnd cview CControlBar CSingleDocTempatel CMD I Frame Wnd TOolbAr CMultiDocTempate CMD I Chi l dWnd cstatusBar
2.构成应用程序的对象之间的关系 P88 用图的形式可直观地表示所涉及的MFC类的继承或者派 生关系。 4.1.2 典型的MDI应用程序的构成
412典型的MD应用程序的构成 3.构成应用程序的文件P88 下面,从文件的角度来考察 App wizard生成了哪些源 码文件,这些文件的作用是什么。 表41列出了 App Wizard所生成的头文件, 表42列出了了 App wizard所生成的实现文件及其对头 文件的包含关系
3.构成应用程序的文件 P88 下面,从文件的角度来考察AppWizard生成了哪些源 码文件,这些文件的作用是什么。 表4.1列出了AppWizard所生成的头文件, 表4.2列出了了AppWizard所生成的实现文件及其对头 文件的包含关系。 4.1.2 典型的MDI应用程序的构成