第4章应用程序的结构——文档与视图文档与视图文档与视图通信的关键函数单文档应用程序多文档应用程序第4章应用程序的结构——文档与视图文档与视图文档与视图通信的关键函数单文档应用程序多文档应用程序第4章应用程序的结构——文档与视图文档与视图文档与视图通信的关键函数单文档应用程序多文档应用程序第4章应用程序的结构——文档与视图文档与视图文档与视图通信的关键函数单文档应用程序多文档应用程序第4章应用程序的结构——文档与视图文档与视图文档与视图通信的关键函数单文档应用程序多文档应用程序4.1文档与视图4.1.1文档与视图概述4.1.2文档与视图的结构4.1.1文档与视图概述文档是一种数据源文档是一种数据源文档还负责将数据保存到永久存储介质中。视图视图是数据的用户窗口,为用户提供了文档的可视数据显示,它把文档的部分或全部内容在窗口中显示出来。视图还给用户提供与文档中的数据交互的界面,它把用户的输入转化为对文档中数据的操作。4.1.2文档与视图的结构分类单文档应用程序多文档应用程序优点将数据操作和数据显示、用户界面分离开MFC在文档/视结构上提供了许多标准操作界面支持打印预览和电子邮件发送功能4.1.2文档与视图的结构不适合采用文档/视图结构的情况不是面向数据的应用或数据量很少的应用程序不使用标准的窗口用户界面的程序文档/视图结构相关的类应用程序类CWinApp框架窗口类CFrameWnd视图类Cview文档类CDocument的派生类4.1.2文档与视图的结构从CDocument类派生自己的文档类为每一个文档类型从CDocument类(当然也可以是其它CDocument类的派生类)派生一个相应的文档类。为文档类添加成员变量。这些成员变量用来保存文档的数据,其它对象(如与文档相关联的视图)直接或间接地访问这些成员变量来读取或更新文档的数据。重载Serialize成员函数,实现文档数据的串行化。4.2文档与视图通信的关键函数CView::GetDocument函数CDocument::UpdateAllView函数CView::OnUpdate函数CView::OnInitialUpdate函数CDocument::OnNewDocument函数4.3单文档应用程序【范例4-1】基于单文档的应用程序,可以用鼠标写字,并能设置颜色。4.4多文档应用程序【范例4-2】多文档记事本阅读器。4.5综合应用【范例4-3】支持连续打开文档的阅读器。4.7跟我上机在VisualC++6.0中编写一个单文档应用程序,可以打开txt文件。