第八章文档类对象持续性9.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章文档类对象持续性9

第八章文档类对象持续性 中原工学院计算机系 王海龙 whlseadragon@zzti.edu.cn 文档---视图结构 (1) 数据储存在文档类中,数据显示由视图负责。视图是程序窗口的客户区,用户通过视图与程序交互,框架窗口是客户区的框架;一个文档可以对应多个不同视图; 一个视图一般只对应一个文档。当文档数据发生变化时,视图显示的状态也会随之变化;对于多个视图的情况,基于同一文档的多个视图的显示同步变化。 文档---视图结构 (2) 文档模板 文档的创建过程 框架窗口对象产生的次序 视图的创建过程 文档和视图对象之间相互作用的函数(1) 1.CView::GetDocument() 作用:返回该视图所联系的文档对象的指针; 1.2.CDocument::GetFirstViewPosition() 作用:返回该文档对象的视图列表中第一个视图的POSITION值。 3. CDocument::GetNextView() 作用:返回一个由POSITION值标识的视图对象指针。 以上两个函数常搭配使用,来遍历一个文档对象的视图列表。 文档和视图对象之间相互作用的函数(2) 1 4. CDocument::UpdataAllViews() 作用:更新与该文档相关联的视图。 5.? CView::OnUpdate() 作用:更新视图。 原型:virtual void OnUpdate( CView* pSender, LPARAM lHint, CObject* pHint ); UpdataAllViews()---OnUpdate()---OnDraw() 2.6.? CView::OnInitialUpdate() 作用:用于对视图对象进行初始化。 OnInitialUpdate--- OnUpdate( ) ---OnDraw() 3.7. CDocument::DeleteContens( ) 作用:当文档关闭时,应用程序框架自动调用它。 一个文档视图结构程序Ex07a(1) 步骤1.选择向导MFC AppWizard(exe),创建一个名为Ex07a的项目.在MFC AppWizard对话框的第一步中选择多文档.选择视图的基类为CFormView 步骤2.在VC++6.0中, 单击“插入—新建类”菜单,在New Class对话框的Class type栏中选择Generic Class,Name文本框栏输入CLine,在Base class栏的左边输入选择CObject。单击OK按钮,对话框类CStudent即被创建. 一个文档视图结构程序Ex07a(2) 步骤3.编辑Student.h文件,使CStudent类的定义如下: class CStudent : public CObject {public: DECLARE_DYNCREATE(CStudent) long m_nCode; CString m_sName; long m_lAge; double m_lScore; CStudent(); CStudent(long,CString,long ,double); virtual ~CStudent(); }; 一个文档视图结构程序Ex07a(3) 步骤4.编辑Student.cpp文件,使CStudent类的实现如下: 一个文档视图结构程序Ex07a(4) 步骤5.在文档类CEx07aDoc中加入公有成员变量: POSITION curPos; CTypedPtrList CObList, CStudent* m_dataList; 其中CTypedPtrList 类是一个模板类,其定义格式如下: CtypedPtrListBASE_CLASS,TYPE 其中TYPE用来指定你的列表元素的类型;例如int ,char,long ,float, 或为类和结构。 BASE_CLASS用来指定CTypedPtrList 类的基类。 CObList类支持指向Cobject派生类的对象的有序的指针列表。 为了能在应用程序中使用CTypedPtrList,在文件stdafx.h中 #include afxtempl.h 一个文档视图结构程序Ex07a(5) 步骤6.在文档类CEx07aDoc中加入虚函数DeleteContents() void CEx07aDoc::DeleteContents() { while(!m_dataList.IsEmpty()) delete m_dataList.RemoveHead(); CDocument::DeleteContents(); } //清除m_dataList占有的内存 一

文档评论(0)

ldj215323 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档