第7章文档视图结构ppt课件.ppt

第7章文档视图结构ppt课件.ppt

ID:59016535

大小:285.00 KB

页数:31页

时间:2020-09-26

第7章文档视图结构ppt课件.ppt_第1页
第7章文档视图结构ppt课件.ppt_第2页
第7章文档视图结构ppt课件.ppt_第3页
第7章文档视图结构ppt课件.ppt_第4页
第7章文档视图结构ppt课件.ppt_第5页
资源描述:

《第7章文档视图结构ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章文档视图结构——定制程序框架,张扬应用程序个性教学内容§7.1文档视图结构§7.2文档视图结构的主要组成类§7.3多视图及窗口切分§7.4文件操作§7.5综合实例——宾馆管理系统的完善§7.6小结思考与练习§7.1文档视图结构7.1.1文档视图的概念§7.1文档视图结构7.1.2文档模板在文档视图结构中,文档、框架窗口与视图通过文档模板联系在一起。文档模板负责在运行时创建(动态创建)文档、视图和框架窗口。一个应用程序对象可以管理一个或多个文档模板,每个文档模板用于动态创建和管理一个或多个同类型的文档(这取决于应用程序是SDI程序还

2、是MDI程序)。MFC的文档模板类CDocTemplate用于支持文档模板操作。由于文档模板类是一个抽象基类,因此不能直接用其声明对象,只能使用其派生类。对于单文档界面程序,应使用CSingleDocTemplate(单文档模板类),对于一个多文档界面程序,使用CMultipleDocTemplate(多文档模板类)。§7.1文档视图结构7.1.3文档类1、文档类的成员函数◆获得视图列表中与本文档关联的第一个视图的位置函数:virtualPOSITIONGetFirstViewPosition()const;◆获得下一个本文档关联的视图

3、的位置到rPosition中:virtualCView*GetNextView(POSITION&rPosition)const;显然,使用GetFirstViewPosition与GetNextView可遍历文档的所有视图。◆返回文档(窗口)的标题,一般为相关联的文件名constCString&GetTitle()const;◆设置文档(窗口)的标题virtualvoidSetTitle(LPCTSTRlpszTitle);◆返回与文档相关联的文件的路径,无关联文件时返回NULLconstCString&GetPathName()co

4、nst;§7.1文档视图结构7.1.3文档类1、文档类的成员函数◆设置存取文档的默认路径(与文档(窗口)的标题)virtualvoidSetPathName(LPCTSTRlpszPathName,BOOLbAddToMRU=TRUE);◆判断文档在最后一次存储后是否被修改过,若被修改过,则在用户关闭文档窗口或应用程序时,会提示保存文件BOOLIsModified();◆设置文档在最后一次存储后是否被修改过voidSetModifiedFlag(BOOLbModified=TRUE);◆更新所有视图voidUpdateAllViews(

5、CView*pSender,LPARAMlHint,CObject*pHint);§7.1文档视图结构7.1.3文档类2、文档的序列化用户处理的数据往往需要存盘作永久备份。将文档类中的数据成员变量的值保存在磁盘文件中,或者将存储的文档文件中的数据读取到相应的成员变量中。这个过程称为序列化(Serialize)。序列化实质上就是让对象将其当前的状态(由其成员变量的值表示)写入到永久性存储体(通常是指磁盘)中,以后还可以从永久性存储体中读取对象的状态(载入),从而重建对象。这种对象的保存和恢复的过程称为“序列化”。序列化是一种实现对象持久性

6、(Persistent)的机制,它是一个将对象中的数据转换成一个单一元素(通常是Stream)的过程。§7.1文档视图结构7.1.3文档类2、文档的序列化用户单击菜单项“文件|保存”用户单击菜单项“文件|另存为…”打开当前文档所对应的文件询问保存文件名生成Carchive的一个对象,并使之与所保存的文件相关联打开用户输入的文件调用文档类的Serialize成员函数,并将生成的Carchive对象传递给该成员函数Serialize成员函数通过CArchive对象将当前文档的数据保存到指定的介质(通常是磁盘文件)中§7.1文档视图结构7.1

7、.4框架窗口类§7.1文档视图结构7.1.5视图类1、CView类CView是用户视图类的缺省基类,也是其他各种MFC视图类的基类。视图类CView是窗口类CWnd类的派生类。视图类对象完全覆盖框架窗口的用户区,没有自己的边框。视图规定了用户查看文档数据以及同数据交互的方式。视图类有几个重要的成员函数。GetDocument()成员函数用于从文档类中获取数据值。实际上,该函数提供一个指向文档派生类对象的指针,通过该指针可访问文档派生类的公有成员。例如:GetDocument()>AddBubble(rectBubble);正因为如此,

8、文档类的数据成员只能声明为公有的,而不能象面向对象技术所要求的那样,将所有的数据成员均声明为私有成员。由于文档类和视图类的关系十分密切,这样做可以简化程序设计,并不会因封装性被破坏而造成混乱。在视图类中,用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。