90 likes | 269 Views
第 11 章 多文档应用程序设计. 本章主要内容. 多文档应用程序结构 设计多文档应用程序. 多文档应用程序结构. 文档 / 视图结构实现的是一种数据和显示分离的模型。在单文档应用程序中,对文档类和视图类只分别实例化一个对象,文档对象提供数据,视图对象负责显示,生成的视图窗口在主框架窗口的客户区。
E N D
本章主要内容 • 多文档应用程序结构 • 设计多文档应用程序 《面向对象技术与Visual C++》--第11章
多文档应用程序结构 • 文档/视图结构实现的是一种数据和显示分离的模型。在单文档应用程序中,对文档类和视图类只分别实例化一个对象,文档对象提供数据,视图对象负责显示,生成的视图窗口在主框架窗口的客户区。 • 多文档应用程序有一个含有菜单、工具栏和状态栏的主框架窗口,但管理主框架窗口的主框架窗口类是从多文档框架窗口类CMDIFrameWnd派生。在多文档应用程序中,视图窗口不再依赖于主框架窗口,而是包含在子窗口中,多文档应用程序允许同时打开多个子窗口。相应地,MFC允许实例化多个文档和视图类对象,用于在不同的子窗口显示不同的文档对象的数据,从而实现多文档。 《面向对象技术与Visual C++》--第11章
生成一个多文档应用程序 • 在Visual C++主菜单中打开File,选择New菜单项,出现New对话框。 • 在New对话框中单击 Project 选项卡,在项目清单中选择MFC AppWizard(exe)项,在Project name编辑框中输入MultiDoc。单击 OK按钮。 • 在弹出的MFC AppWizard Step 1对话框中,选择Multiple document项,选择Document/View architecture support项。单击Next按钮。 • 在弹出的MFC AppWizard Step 2对话框中,接受对话框的默认配置,单击Next按钮。 • 在弹出的MFC AppWizard Step 3对话框中,取消ActiveX Control选项。单击Next按钮。 • 在弹出的MFC AppWizard Step 4对话框中,可以接受对话框的默认配置。如果不需要工具栏和状态条支持,则留下3D Control选项。单击Next按钮。 • 在弹出的MFC AppWizard Step 5对话框中,接受对话框的默认配置,单击Finish按钮。 • 在弹出的MFC AppWizard Step 6对话框中,接受对话框的默认配置,单击Ok按钮,完成多文档应用程序的创建。 《面向对象技术与Visual C++》--第11章
生成的类和文件 • 用AppWizard向导创建多文档应用程序所生成的类和文件与单文档应用程序相似。多文档应用程序也包括应用程序类、文档类、主框架窗口类和视图类,但多一个子窗口类。各类的作用和单文档应用程序的类也有所不同。 • 应用程序类 • 文档类 • 主框架窗口类 • 子窗口类 • 视图类 《面向对象技术与Visual C++》--第11章
设计多文档应用程序 • 在多文档应用程序中,当用户选择“文件”菜单中的“新建”或“打开”选项时,MFC自动产生新的子窗口和视图窗口,并且在视图窗口中显示相关联的文档数据。 • 对于多文档应用程序设计,主要的工作还是为文档类和视图类添加相应的功能,设计菜单、工具栏等用户界面以及鼠标和键盘的处理。 • 如果要支持多种文件类型或多菜单,则需要添加额外的代码。 《面向对象技术与Visual C++》--第11章
多文件类型和多菜单 • 多文档应用程序除了支持单一文件类型外,还可以支持多种文件类型,即一个应用程序可以处理多种文件格式。 • 为了支持多文件类型,需要在程序中定义一个基于CDocument的派生类和一个支持这种文件显示的视图类,补充其特定功能,然后通过文档模板加入。 《面向对象技术与Visual C++》--第11章
多文档应用程序示例 《面向对象技术与Visual C++》--第11章