第7章 文档视图结构.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 第7章 文档视图结构 —— 定制程序框架,张扬应用程序个性 教学内容 §7.1 文档视图结构 §7.2 文档视图结构的主要组成类 §7.3 多视图及窗口切分 §7.4 文件操作 §7.5 综合实例——宾馆管理系统的完善 §7.6 小结 思考与练习 §7.1 文档视图结构 7.1.1 文档视图的概念 §7.1 文档视图结构 7.1.2文档模板 在文档视图结构中,文档、框架窗口与视图通过文档模板联系在一起。文档模板负责在运行时创建(动态创建)文档、视图和框架窗口。一个应用程序对象可以管理一个或多个文档模板,每个文档模板用于动态创建和管理一个或多个同类型的文档(这取决于应用程序是SDI程序还是MDI程序)。MFC的文档模板类CDocTemplate用于支持文档模板操作。由于文档模板类是一个抽象基类,因此不能直接用其声明对象,只能使用其派生类。对于单文档界面程序,应使用CSingleDocTemplate(单文档模板类),对于一个多文档界面程序,使用CMultipleDocTemplate(多文档模板类)。 §7.1 文档视图结构 7.1.3 文档类 1、文档类的成员函数 ◆ 获得视图列表中与本文档关联的第一个视图的位置函数: virtual POSITION GetFirstViewPosition( ) const; ◆ 获得下一个本文档关联的视图的位置到rPosition中: virtual CView* GetNextView( POSITION& rPosition ) const; 显然,使用GetFirstViewPosition与GetNextView可遍历文档的所有视图。 ◆ 返回文档(窗口)的标题,一般为相关联的文件名 const CString& GetTitle( ) const; ◆ 设置文档(窗口)的标题 virtual void SetTitle( LPCTSTR lpszTitle ); ◆ 返回与文档相关联的文件的路径,无关联文件时返回NULL const CString& GetPathName( ) const; §7.1 文档视图结构 7.1.3 文档类 1、文档类的成员函数 ◆ 设置存取文档的默认路径(与文档(窗口)的标题) virtual void SetPathName( LPCTSTR lpszPathName, BOOL bAddToMRU = TRUE ); ◆ 判断文档在最后一次存储后是否被修改过, 若被修改过,则在用户关闭文档窗口或应用程序时,会提示保存文件 BOOL IsModified( ); ◆ 设置文档在最后一次存储后是否被修改过 void SetModifiedFlag( BOOL bModified = TRUE ); ◆ 更新所有视图 void UpdateAllViews( CView* pSender, LPARAM lHint , CObject* pHint ); §7.1 文档视图结构 7.1.3 文档类 2、文档的序列化 用户处理的数据往往需要存盘作永久备份。将文档类中的数据成员变量的值保存在磁盘文件中,或者将存储的文档文件中的数据读取到相应的成员变量中。这个过程称为序列化(Serialize)。序列化实质上就是让对象将其当前的状态(由其成员变量的值表示)写入到永久性存储体(通常是指磁盘)中,以后还可以从永久性存储体中读取对象的状态(载入),从而重建对象。这种对象的保存和恢复的过程称为 “序列化”。序列化是一种实现对象持久性(Persistent)的机制,它是一个将对象中的数据转换成一个单一元素(通常是Stream)的过程。 §7.1 文档视图结构 7.1.3 文档类 2、文档的序列化 用户单击菜单项“文件|保存” 用户单击菜单项“文件|另存为…” 打开当前文档所对应的文件 询问保存文件名 生成Carchive的一个对象,并使之与所保存的文件相关联 打开用户输入的文件 调用文档类的Serialize成员函数,并将生成的Carchive对象传递给该成员函数 Serialize成员函数通过CArchive对象将当前文档的数据保存到指定的介质(通常是磁盘文件)中 §7.1 文档视图结构 7.1.4 框架窗口类 §7.1 文档视图结构 7.1.5 视图类 1、CView类 CView是用户视图类的缺省基类,也是其他各种MFC视图类的基类。视图类CView是窗口类CWnd类的派生类。视图类对象完全覆盖框架窗口的用户区,没有自己的边框。视图规定了用户查看文档数据以及同数据交互的方式。 视图类有几个重要的成员函数。 GetDocument()成员函数用于从文档类中获取数据值。实际上,该函数提供一个指向文档派生类对象

您可能关注的文档

文档评论(0)

yyh892289 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档

相关课程推荐