第5章-文档与视图结构.pptVIP

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

第五章 文档与视图结构 5.1 学生档案管理系统 5.2文档/视图的概念 5.2.1 文档 文档类:继承于类CDocument,描述了应用的数据。文档是一个CDocument派生对象,它负责存储应用程序的数据,并把这些信息提供给应用程序的其余部分,即负责管理和维护应用的程序。CDocument类对文档的建立及归档提供支持并提供了应用程序用于控制其数据的接口 5.2.2 视图 视图类:继承于视类Cview,是基于Cview 的一个窗口 视图是数据的用户窗口,为用户提供了文档的可视的数据显示 5.2.3 文档与视图关系 每个文档都会有一个或多个视图显示,一个文档可以有多个不同的视图 文档用来保存数据,视图用来显示数据,视图是显示的文档 在文档/视图结构里,文档可视为一个应用程序的数据元素的集合,MFC通过文档类提供了大量管理和维护数据的手段。 视图是数据的用户界面,可将文档的部分或全部的内容在其窗口中显示,或者通过打印机打印出来 视图还可以提供用户与文档中数据的交互功能,将用户的输入转化为对数据的操作 文档视图结构介绍 在MFC中有两种类型的文档视图结构 单文档界面(SDI:Single Document Interface)应用程序 多文档界面(MDI:Multiple Document Interface)应用程序 文档视图结构介绍(续) 单文档界面(SDI)应用程序中,用户在同一时刻只能操作一个文档,在SDI程序中,打开新文档时会自动关闭当前打开的活动文档,如果当前文档修改后尚未保存,会提示用户是否保存所做修改 多文档界面(MDI)应用程序允许同时对多个文档进行操作,在MDI程序中,可以打开多个文档,可以通过切换活动窗口激活相应的文档进行编辑处理 文档试图结构的特点 将对数据的操作与数据的显示界面分离,放在不同类的对象中处理。这种思想使得程序模块的划分更加合理。文档对象只负责数据的管理,不涉及用户界面;视图对象只负责数据输出和与用户的交互,可以不考虑数据的具体组织结构的细节 MFC在文档/试图结构中提供了许多标准的操作界面,大大减轻了程序员的工作量 支持打印、打印预览和电子邮件发送功能。程序员只需编写很少的代码甚至根本无需编写代码,就可以为应用程序提供“所见即所得”式的打印和打印预览这类功能 使用AppWizard可生成基于文档视图结构的SDI或MDI框架程序,程序员只需在其中添加与特定应用有关的部分代码,就可以完成应用程序的开发工作 5.2.4 文档与视图的交互过程 1. Cview类的GetDocument()函数: 使用户得到指向与当前视图相联系的文档的指针,从而利用该指针来访问文档的数据,使文档能及时反映视图数据的变化. 例: CMyHelloDoc *pDoc = GetDocument(); ASSERT_VALID(pDoc); 例: ASSERT(m_pDocument -IsKindOf(RUNTIME_CLASS(CMySdiDoc))); Return(CMySdiDoc *)m_pDocument; 2. CDocument类的UpdateAllViews()函数: 使视图能及时反映文档数据的变化. 原型为: void UpdateAllViews(Cview *pSender, LPARAM lHint=0L, Cobject *pHint=NULL); 调用形式: UpdateAllViews(NULL); GetDocument()- UpdateAllViews(this); 3. Cview类的OnUpdate()函数:当被调用时,对文档类进行访问,读取文档数据,刷新视图 原型: virtual void OnUpdate(Cview *pSender, LPARAM lHint, CObject *pHint); 4. Cview类的OnInitialUpdate()函数: 当APP被启动或用户选择了打开或新建OnInitialUpdate()函数被调用. Cview类中的该函数只是调用了OnUpdate()函数,用户要对派生的OnInitialUpdate()函数进行初始化,则可以调用基类的该函数,也可以直接调用派生类的OnUpdate()函数 5.3单文档应用程序(SDI) 5.3.1 创建工程 创建exe程序 选择Single document 接受默认的“None”

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档