文档视图框架简介

文档是程序的数据结构,CDocument的派生类对象。它负责程序数据的组织和维护,提供给程序的视图显示的数据。

视图是程序的面,CView的派生类对象。它负责程序的面向客户的数据显示,并接受客户的请求,操作文档中的数据。

每个View都有与之唯一关联的Document。在CView的派生类中的OnDraw函数中,通过GetDocument()返回与之关联的Document指针:pDoc。视图正是通过这个指针来操作文档的。

从View的角度看,Document是它的后台;从Document的角度看,View是它的前台。

拓展:

对于一个文档运用程序(包括单文档和多文档),框架(Frame)、文档(Document)和视图(View)是程序的三个子集,他们之间的交流是通过文档模板(DocTemplate)来进行的。

MFC中,这三个对象之间的关系:

          文档:使用GetFirstViewPosition和GetNextView访问文档的视图列表;GetDocTemplate获取文档模板。

          视图:调用GetDocument获得文档,调用GetParentFrame获得框架窗口。

          文档框架窗口:GetActiveView获得当前获得视图,GetActiveDocument获得与当前视图关联的文档。 

          MDI框架窗口:调用MDIGetActive获得当前活动的MDIChildWnd。

综述:

          多文档的主框架窗口是子框架窗口的父窗口,子框架窗口是视图的父窗口;单文档的框架窗口直接称为视图的父窗口。文档的框架窗口保留指向其当前活动视图的指针。视图保留指向其文档的指针,并充当其父框架窗口的子级。

          一个框架窗口和一个文档对象对应。一个文档对象和多个视图对应。文档保留该文档的视图列表和指向创建该文档的文档模板的指针。


你可能感兴趣的:(数据结构,框架,活动,文档,mfc)