- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++程序设计 第七章 文档和视图 本章导读 理解文档类和视图类二者间的关系。 掌握在视图类中利用GetDocument函数获得文档类的指针,并借助此指针更新文档类中的数据的方法。 掌握在文档类中当文档数据发生了改变时利用UpDateAllViews()通知所有的视图对象的方法,通过调用文档类的UpDateAllViews()函数去调用每个视图的成员函数OnUpdate()函数对相应的视图进行数据更新。 掌握视图类的OnDraw函数的调用机理。 了解SDI文档序列化的工作原理和实现方法。 7.1 文档类和视图类间的关系 视图和用户的文档间是紧密相连的,文档类用于管理应用程序的数据,包括对数据读取、存储和修改。视图类用于显示文档并管理与用户的交互。这种文档和视图的结合,称为“文档/视图”结构机制。 定义和操纵数据的代码在文档类中实现;显示数据、解释用户输入的代码在视图类中实现。 一个SDI(单文档界面)应用程序同一时刻只能打开一个文档。 在一个MDI(多文档界面)应用程序中,可以有几种不同类型的文档,每个文档可以有一个或多个视图。同一时刻可以打开几个文档,打开的文档经常使用适合该文档的工具栏和菜单。 7.2 常用的成员函数 在SDI(单文档界面)应用程序中,文档类的基类是CDocument,它可以有一个或多个视图类,而所有这些视图类的基类都是CView,任何一个应用程序的文档类和视图类都是由这两个类派生出来的。 7.2.1 CView类的GetDocument()函数 一个视图对象只有一个与之相联系的文档对象,它所包含的GetDocument()函数可以实现在视图中得到与之相联系的文档。CView类及其派生类只需调用GetDocument()函数就可以取得CDocument类的对象指针,从而用此指针来访问文档类中的的所有可见的数据。 7.2 常用的成员函数 GetDocument函数的原型为: CDocument* CView::GetDocument( ) const; 另外,CDocument类中的GetNextView()函数可以在文档类中获得视图类的指针 CDocument类先调用GetFirstViewPosition()函数得到所有有关该文档类对象的第一个视图,再用该函数的返回结果调用GetNextView()函数,即可得到CView类的指针,从而借此访问CView类的数据。 7.2 常用的成员函数 这两个函数的原型为: 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();? }?? } 7.2 常用的成员函数 7.2.2 CDocument 类的UpDateAllViews()函数 通过文档类的UpDateAllViews()函数调用每个视图的成员函数OnUpdate()函数对相应的视图进行数据更新。 UpDateAllViews()函数的原型为: void UpDateAllViews(CView*pSender,LPARAM lHint=0L,CObject*pHint=NULL); 7.2 常用的成员函数 7.2.3 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()函数来更新视图的滚动范围
您可能关注的文档
- 面向对象程序设计(C++)( 第二版) 课件 第10章 文件的输入输出.ppt
- 面向对象程序设计(C++)( 第二版) 课件 第11章 Visual C++编程基础.ppt
- 面向对象程序设计(C++)( 第二版) 课件 第12章 MFC应用程序实例.ppt
- 面向对象程序设计C++教程 教学课件 作者 于帆 赵妮 闫谦时 c++常用函数所在头文件一览.doc
- 面向对象程序设计及C++ 第2版 教学课件 作者 朱立华 俞琼 第1章_面向对象的程序设计及C++概述new.ppt
- 面向对象程序设计及C++ 第2版 教学课件 作者 朱立华 俞琼 第2章_C++对C的改进及扩展new.ppt
- 面向对象程序设计及C++ 第2版 教学课件 作者 朱立华 俞琼 第3章_类与对象new.ppt
- 面向对象程序设计及C++ 第2版 教学课件 作者 朱立华 俞琼 第4章_类中数据的共享与保护new.ppt
- 面向对象程序设计及C++ 第2版 教学课件 作者 朱立华 俞琼 第5章_类与类之间的关系new.ppt
- 面向对象程序设计及C++ 第2版 教学课件 作者 朱立华 俞琼 第6章_多态性new.ppt
- 面向对象的程序设计语言——C++ 教学课件 作者 陈志泊 王春玲 第8章.ppt
- 面向对象技术及UML教程教学课件 作者 李磊 王养廷 第1章 面向对象技术概述.ppt
- 面向对象技术及UML教程教学课件 作者 李磊 王养廷 第3章 UML概述.ppt
- 面向对象技术及UML教程教学课件 作者 李磊 王养廷 第4章 UML工具.ppt
- 面向对象技术及UML教程教学课件 作者 李磊 王养廷 第5章 用例和用例图.ppt
- 面向对象技术及UML教程教学课件 作者 李磊 王养廷 第6章 顺序图和协作图.ppt
- 面向对象技术及UML教程教学课件 作者 李磊 王养廷 第7章 类图和对象图.ppt
- 面向对象技术及UML教程教学课件 作者 李磊 王养廷 第8章 包.ppt
- 面向对象技术及UML教程教学课件 作者 李磊 王养廷 第9章 状态图和活动图.ppt
- 面向对象技术及UML教程教学课件 作者 李磊 王养廷 第10章 构件图.ppt
最近下载
- 151页-【低空经济】低空无人机公共测试场与验证基地设计方案.pdf
- 理想 RISO 9050 7050 3050 7010 3010 闪彩印王中文技术维修手册 后面可以参考理想闪彩印王 EX7200 EX9050 EX9000 EX7250 系列中文维修手册 .pdf VIP
- 生物酶解技术.pptx VIP
- “素养导向”初中物理大单元教学策略及案例.docx VIP
- 小学四年级综合实践活动《衣服巧收纳》公开课课件.pptx VIP
- 公司建设项目全过程造价咨询工作规范.doc VIP
- 教学进度计划表.pdf VIP
- 直肠癌放射治疗靶区勾画.ppt
- 软件工程项目造价技术规范.pdf VIP
- 2025年左玉辉-环境学.pptx VIP
文档评论(0)