下载此文档

第7章 文档和视图.ppt


文档分类:IT计算机 | 页数:约19页 举报非法文档有奖
1/19
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/19 下载此文档
文档列表 文档介绍
第七章文档和视图
本章导读
理解文档类和视图类二者间的关系。
掌握在视图类中利用GetDocument函数获得文档类的指针,并借助此指针更新文档类中的数据的方法。
掌握在文档类中当文档数据发生了改变时利用UpDateAllViews()通知所有的视图对象的方法,通过调用文档类的UpDateAllViews()函数去调用每个视图的成员函数OnUpdate()函数对相应的视图进行数据更新。
掌握视图类的OnDraw函数的调用机理。
了解SDI文档序列化的工作原理和实现方法。
1
文档类和视图类间的关系
视图和用户的文档间是紧密相连的,文档类用于管理应用程序的数据,包括对数据读取、存储和修改。视图类用于显示文档并管理与用户的交互。这种文档和视图的结合,称为“文档/视图”结构机制。
定义和操纵数据的代码在文档类中实现;显示数据、解释用户输入的代码在视图类中实现。
一个SDI(单文档界面)应用程序同一时刻只能打开一个文档。
在一个MDI(多文档界面)应用程序中,可以有几种不同类型的文档,每个文档可以有一个或多个视图。同一时刻可以打开几个文档,打开的文档经常使用适合该文档的工具栏和菜单。
2
常用的成员函数
在SDI(单文档界面)应用程序中,文档类的基类是CDocument,它可以有一个或多个视图类,而所有这些视图类的基类都是CView,任何一个应用程序的文档类和视图类都是由这两个类派生出来的。
CView类的GetDocument()函数
一个视图对象只有一个与之相联系的文档对象,它所包含的GetDocument()函数可以实现在视图中得到与之相联系的文档。CView类及其派生类只需调用GetDocument()函数就可以取得CDocument类的对象指针,从而用此指针来访问文档类中的的所有可见的数据。
3
GetDocument函数的原型为:
CDocument* CView::GetDocument( ) const;
另外,CDocument类中的GetNextView()函数可以在文档类中获得视图类的指针
CDocument类先调用GetFirstViewPosition()函数得到所有有关该文档类对象的第一个视图,再用该函数的返回结果调用GetNextView()函数,即可得到CView类的指针,从而借此访问CView类的数据。
常用的成员函数
4
这两个函数的原型为:
virtual POSITION CDocument::GetFirstViewPosition( ) const;
virtual CView* CDocument::GetNextView( POSITION& rPosition ) const;
如:
void CMyDoc::OnRepaintAllViews()
{   POSITION pos = GetFirstViewPosition();
  while (pos != NULL)
  { CView* pView = GetNextView(pos);
     pView->UpdateWindow();  }  
}
常用的成员函数
5
CDocument 类的UpDateAllViews()函数
通过文档类的UpDateAllViews()函数调用每个视图的成员函数OnUpdate()函数对相应的视图进行数据更新。
UpDateAllViews()函数的原型为:
void UpDateAllViews(CView*pSender,LPARAM lHint=0L,CObject*pHint=NULL);
常用的成员函数
6
CView类的 OnUpdate()函数
当应用程序调用了CDocument 类的UpDateAllViews()函数时,应用程序框架就会相应地调用该函数。通常在派生视图类中的OnUpdate()函数要对文档进行访问,读取文档的数据,然后再对视图的数据成员或控制进行更新。
OnUpdate()函数原型如下:
virtual void OnUpdate(CView*pSender,LPARAM lHint,CObject* pHint);
函数中参数的说明同函数UpdateAllViews()。
利用OnUpdate()函数,可以使视图的某一部分无效,以便触发视图类的OnDraw()函数。在默认情况即lHint=0,pHint=NULL时,函数OnUpdate()使视图的整个客户区无效;如果想要视图的某一部分无效,则需要定义相关的提示(hint)参数给出准确的无效区域。
用OnUpdate()函数来更新视图的滚动范围。
常用

第7章 文档和视图 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数19
  • 收藏数0 收藏
  • 顶次数0
  • 上传人中国课件站
  • 文件大小0 KB
  • 时间2011-10-11