5、MFC文档视图结构

5、MFC文档视图结构

ID:45292220

大小:2.62 MB

页数:26页

时间:2019-11-11

5、MFC文档视图结构_第1页
5、MFC文档视图结构_第2页
5、MFC文档视图结构_第3页
5、MFC文档视图结构_第4页
5、MFC文档视图结构_第5页
资源描述:

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

1、MFC文档视图结构一、文档视结构概述思考:一个排序小程序的编写过程,框架?应用层、显示层、存储层Observer模式文档视结构是程序框架中应用层(数据处理层)与数据显示层之间的一种数据交换关系。其主要思想是设计模式中的Observer模式。把数据处理和显示有机分离,合理交互。在MFC中,则更多代表了一种程序框架模式。MFC库支持:SingleDocumentInterfaceMultiple-DocumentInterface一、文档视结构概述SDI和MDI主要差别(用户的角度)SDI的应用程序只有一个窗口,每次只能读写一个文件或文档。例如:Windows的no

2、tepadMDI的应用程序每次可以读写多个文件或文档,可以同时对多个文档进行操作,可以有多个子窗口。例如:Windows的Word一、文档视结构概述SDI和MDI主要差别(程序员角度)SDI不需要生成CChildFrame类SDI应用程序的CMainFrame类的基类为CFrameWndMDI应用程序的CMainFrame类的基类为CMDIFrameWnd一、文档视结构概述二、基于文档视结构的程序框架构成文档处理类应用层负责应用程序的数据处理、管理和存储中心。视图显示类显示层从文档类中取数据、显示数据给用户;接受用户对文档中数据的编辑和修改,并反馈给文档类;框

3、架管理类独立界面管理工作,为应用程序的用户界面提供框架窗口,它是应用程序的主窗口,负责管理其包容的窗口。应用程序类管理应用程序本身,负责和OS进行交互(获取或发送消息等)二、基于文档视结构的程序框架构成文档classCDocument;视图classCView;框架类classCFrameWnd;//standardSDIMainFrameclassCMDIFrameWnd;//stardardMDIMainFrameclassCMDIChildWnd;//standardMDIchildFrame应用程序类classWinApp二、基于文档视结构的程序框架构成S

4、DICDocumentCViewCWinAppCMainFrame--派生自CFrameWnd二、基于文档视结构的程序框架构成MDICDocumentCViewCWinAppCMainFrame--派生自CFrameWnd:主框架类CChildFrame—派生自CMDIChildWnd:子框架类三、文档视结构的运行机制(方式)1)视图类调用GetDocument成员函数获得相关联的文档对象指针,从文档中读取数据。2)视图把数据显示在屏幕上用户交互数据修改。3)视图将经过修改的数据传递给文档对象,进行数据更新。四、文档视结构中各类的重要函数几个重要的函数CVie

5、w类的OnInitialUpdateCView类的OnDrawCView类的GetDocumentCDocument类的UpdateAllViewsCView类的OnUpdateCView类::OnInitialUpdate当视图第一次与一个文档相关联,在视图尚未显示前,调用该函数。CView基类中的成员函数OnInitialUpdate()的作用就是调用OnUpdate()函数。可以用派生类的OnInitialUpdate()函数对视图对象进行初始化。当应用程序启动时,应用程序框架调用了OnCreate()函数之后,会立刻调用OnInitialUpdate()函

6、数。四、文档视结构中各类的重要函数CView::OnDraw应用程序几乎所有的绘制工作都是在视图类的OnDraw()函数中完成的。每次当视窗被重新绘制时,应用程序框架都要调用函数OnDraw()。当用户改变了窗口尺寸,或者窗口恢复了以前被遮盖的部分,或者当应用程序改变了窗口的数据时,窗口都需要被重新绘制。视图类所继承的Invalidate或InvalidateRect成员调用后会触发对函数OnDraw的调用。四、文档视结构中各类的重要函数CView::GetDocument一个视图对象只有一个与之相联系的文档对象,CView及其派生类只需调用GetDocument

7、()函数就可以取得CDocument类的对象指针,从而用此指针来访问文档类中的所有可见的数据和文档类公有成员函数。四、文档视结构中各类的重要函数CDocument::UpdateAllViews一个文档对象可以有多个视图对象与之对应,所以当文档数据发生了改变,则必须要通知所有的视图对象,以便它们能对所显示的数据进行相应的更新。UpdateAllViews()函数调用每个视图的成员函数OnUpdate()对相应视图进行更新。四、文档视结构中各类的重要函数CView::OnUpdate当应用程序调用了CDocument类的UpdateAllViews()函数时,应用程

8、序框架就会

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

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

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