第6章 MFC文档视图

第6章 MFC文档视图

ID:42923730

大小:2.76 MB

页数:46页

时间:2019-09-25

第6章 MFC文档视图_第1页
第6章 MFC文档视图_第2页
第6章 MFC文档视图_第3页
第6章 MFC文档视图_第4页
第6章 MFC文档视图_第5页
资源描述:

《第6章 MFC文档视图》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第6章MFC文档视图本章目标熟悉文档、视图对象的创建过程熟悉文档/视图结构的消息传递过程熟悉程序框架中的主要类及相互关系熟悉文档类、视图类核心函数及作用熟悉新建、保存和打开的实现的原理掌握文档/视图程序的界面设计方法,包括,菜单栏、工具栏、状态栏掌握文档/视图程序消息处理的方法掌握文档/视图的文本编程方法,包括插入符创建、显示掌握通过串行化的方法保存加载对象2文档/视图框架文档/视图结构是MFC中结构最复杂、体系最庞大而又最富有特色的部分。在文档/视图结构里,文档是一个应用程序基本数据元素的集合,它构成应用程序所使用的数据单元;视图是应用程序数据显示部分。使用MFC的程序向导(AppW

2、izard)可以方便的创建文档/视图框架程序。3文档/视图框架—文档/视图结构概述文档和视图的关系4文档/视图框架—文档/视图结构概述使用文档/视图结构的意义:将数据操作、数据显示和用户界面分离开。这是一种“分而治之”的思想,这种思想使得模块划分更加合理、模块独立性更强。MFC在文档/视图结构上提供了许多标准操作。如新建文件、打开文件、保存文件、打印等操作,它们被框架自动完成,减轻了程序员的工作量。5文档/视图框架—文档/视图结构概述不宜采用文档/视图结构的情况:不是面向数据的或数据量很少的应用程序。典型的是一些工具程序,例如磁盘扫描程序、时钟程序。不使用标准的窗口用户界面的程序。比如

3、游戏程序。6文档/视图框架—文档/视图结构概述单文档与多文档:SDI程序中,用户在同一时刻只能操作一个文档。典型应用为Windows下的Notepad记事本程序。在这些应用中,打开新文档时需要关闭当前已打开的活动文档。MDI程序中,允许用户同时操作多个文档。如VS2008就是多文档程序。在MDI程序中,用户可以通过切换活动窗口激活相应的文档进行操作。7文档/视图框架—单文档主要类单文档应用程序框架中,主要包含5个类:SDICWinApp(应用程序类)CFrameWnd(框架窗口类)CView(视图类)CDocument(文档类)CDocTemplate(类文档模板)8文档/视图框架—单

4、文档主要类单文档程序框架中的类对象之间的关系:9文档/视图框架—单文档主要类SDI框架程序中各对象之间的访问:成员函数函数说明文档对象调用GetFirstViewPosition()函数和GetNextView()函数访问文档视图的列表调用GetDocTemplate()函数获取文档模板指针,以访问文档模板视图对象调用GetDocument()函数获得同视图关联的文档指针,以访问文档调用GetParentFrame()函数获取框架窗口指针,以访问框架窗口框架窗口对象调用GetActiveView()函数获取活动的视图指针,以访问视图调用GetActiveDocument()函数获取同当

5、前视图相关联的文档,以访问文档应用程序对象在程序的任何位置,调用全局函数AfxGetApp()可以获得CWinApp应用程序类指针,而通过AfxGetApp()->m_pMainWnd则可以获得框架窗口指针10文档/视图框架—文档视图对象的创建过程......//注册应用程序的文档模板。//文档模板将用作文档、框架窗口和视图之间的连接CSingleDocTemplate*pDocTemplate;pDocTemplate=newCSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CMytestDoc),RUNTIME_CLASS(CMainFr

6、ame),//主SDI框架窗口RUNTIME_CLASS(CMytestView));if(!pDocTemplate)returnFALSE;AddDocTemplate(pDocTemplate);//分析标准外壳命令、DDE、打开文件操作的命令行......//根据命令行中的信息启动程序......//唯一的一个窗口已初始化,因此显示它并对其进行更新......11文档/视图框架—文档视图核心函数文档类核心函数:成员函数函数说明GetFirstViewPosition()这两个函数配合使用,访问同文档关联的视图列表。GetNextView()GetPathName()获得文档的文

7、件名和路径,若文档未命名则返回空字符串GetTitle()获得文档的标题,若文档未命名则返回空字符串IsModified()若文档未保存数据,则返回非0,否则返回0SetModifiedFlags()设置或清除文档的修改标志,如果设置了修改标记,则系统自动实现关闭文档时,提示用户是否保存对文档的修改。UpdateAllViews()文档对应多个视图时,更新所有视图,它是通过调用每个视图类的OnUpdate()函数来更新所有当前文档关联的视图*O

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

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

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