"MFC课程第五章讲解了文档视图结构,包括单文档和多文档的应用程序架构,以及其中的主要对象如应用程序对象、文档对象、视图对象和框架窗口对象。文档对象是程序的核心,存储数据;视图对象用于显示和编辑数据;框架窗口对象作为容器承载视图和其他界面元素。此外,还提到了文档类的派生,如CDocument、COleDocument等,以及文档相关的操作方法,如获取视图列表。"
在MFC(Microsoft Foundation Classes)编程中,文档视图结构是构建图形用户界面(GUI)应用的一种常见模式。这一结构的核心思想是将数据(文档)与显示和编辑数据的方式(视图)分离,从而实现更灵活的界面设计和更好的数据管理。
5.1 文档视图结构
在文档视图结构中,有两种基本类型:单文档界面(SDI)和多文档界面(MDI)。SDI应用程序允许用户一次处理一个文档,而MDI应用程序可以同时打开和操作多个文档。每个文档都有一个或多个视图,视图负责根据需要呈现和修改文档内容。框架窗口对象,如CFrameWnd和CMDIFrameWnd,作为容器承载视图、工具栏和其他用户界面组件。
5.2 文档对象
文档对象是MFC程序中存储数据的主要实体,它们通常由CDocument类派生而来。例如,COleDocument用于支持可视编辑的OLE文档,COleLinkingDoc用于OLE容器文档,COleServerDoc用于实现服务器功能,CHtmlEditDoc用于Web浏览器编辑平台,而CRichEditDoc则适用于富文本编辑。每个文档类都提供了特定的功能,以满足不同类型的文档需求。
5.2.1 文档操作
文档对象提供了几个关键方法来管理和访问与其关联的视图。GetFirstViewPosition返回一个POSITION对象,可用于遍历文档的所有视图。GetNextView方法接收这个POSITION对象并返回下一个与文档关联的视图指针。这些方法允许程序员在运行时控制和操作文档的视图集合。
此外,MFC还提供其他方法,如OnOpenDocument,这是一个在打开文档时被调用的关键函数。在CMyDoc类的示例中,它首先调用了基类CDOCUment的OnOpenDocument方法,如果成功,则执行自定义初始化代码,最后返回TRUE表示成功打开文档。
通过理解MFC的文档视图结构和相关对象,开发者能够构建高效且用户友好的应用程序,同时有效地管理数据和界面。文档对象的继承和扩展能力使得开发支持复杂数据类型和协作功能的应用成为可能。