VC++6.0入门【第八章 文档和视图】

VC++6.0入门【第八章 文档和视图】

ID:22227053

大小:1.04 MB

页数:41页

时间:2018-10-27

VC++6.0入门【第八章 文档和视图】_第1页
VC++6.0入门【第八章 文档和视图】_第2页
VC++6.0入门【第八章 文档和视图】_第3页
VC++6.0入门【第八章 文档和视图】_第4页
VC++6.0入门【第八章 文档和视图】_第5页
资源描述:

《VC++6.0入门【第八章 文档和视图】》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方第8章文档和视图精讲MFC应用程序的核心是文档/视图结构。在前面章节的学习中,已经接触了不少文档/视图结构的应用程序,本章将详细分析其结构和原理,并进一步学习使用复杂的文档结构、构造更加丰富的视图。8.1文档/视图概述使用MFC的AppWizard可以创建三种类型的应用程序:(1)单文档界面的应用程序(SDI:SingleDocumentInterface)(2)多文档界面的应用程序(MDI:MultipleDocumentsInterface)(3)基于对话框的应用程序(Di

2、alogbased)基于对话框的应用程序框架非常简单,由应用程序类、对话框类构成。通过应用程序类的InitInstance()函数,构造一个模式对话框对象;调用DoModal()函数,让Windows对话框处理程序象通常情况一样接受和分配消息;用户退出对话框后,程序也就结束了。我们已经知道SDI应用程序由应用程序类(CWinApp)、框架窗口类(CFrameWnd)、文档类(CDocument)、视图类(CView)和文档模板类(CSingleDocTemplate)共同作用。MDI应用程序与SDI应用程序的主要差别在于:MDI有CMDIFrameWnd和CMDIChildWnd两个框

3、架窗口类,前一个派生CMainFrame类,负责菜单等界面元素的主框架窗口管理;后一个派生CChildFrame类,负责相应的文档及其视图的子框架维护。而SDI由框架窗口类CFrameWnd派生CMainFrame类。一个文档可以有多个视图,但一个视图只能对应一个确定的文档。因此,MDI应用程序需要解决的问题是多个文档的数据管理方法。在MDI应用程序中,文档模板只支持主窗口。每打开一个新文档时,都调用文档类的成员函数OnNewDocument(),建立一个由CMDIChildWnd派生的新的MDI子窗口,在子窗口中保存已打开的文档,所有这些细节都由MFC库来处理。8.1.1文档和视图的

4、关系文档/视图结构的最大特点就是:把数据操作和数据表示分离开来,与数据库管理系统提供的数据库与视图的关系一致。图8-1说明了文档及其视图之间的关系。所有对数据的修改由文档对象来完成,用视图调用这个对象的方法来访问和更新数据。----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方ABCD15565587982232337310934542265143467447818752421190203数据文档视图图8-1文档和视图的关

5、系在MFC应用程序框架中,文档和视图的关系主要体现在:文档类和视图类对象的相互作用和相互访问上。如前面章节所述,关系图示如下:CDocument::UpdateAllViews()文档类视图类CView::GetDocument()CView::OnInitialUpdate()CView::Invalidate()CView::InvalidateRect()图8-2文档和视图的相互访问对图示中的函数介绍如下:1.CView::GetDocument()返回文档类的指针,通过该指针在视图类中访问并更新文档数据。2.CDocument::UpdateAllViews(CView*pSe

6、nder,LPARAMlHint=0,Cobject*pHint=NULL)该函数通知与文档相连的所有或部分视图,更新窗口内容。在MFC应用程序框架中,由于文档和视图的一对多关系,当用户在一个视图中修改文档后,本视图将发生改变,相应地,与文档相连的其他视图也应与更新后的文档内容保持一致。这时,本视图便可以调用该函数向其他视图窗口发出WM_PAINT消息,通知它们更新。pSender为修改文档并发出更新通知的视图的指针,当pSender为NULL时通知与文档相连的所有视图更新,当pSender不为NULL时,通知除pSender代表的视图以外的与文档相连的所有视图更新,得到更新的视图类将

7、调用该类的OnUpdate()函数。lHint和pHint----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方是关于视图更新内容的提示。lHint可自定义含义,pHint是一个CObject指针,能够表示MFC所有的对象,它规定了视图需要更新的区域。经常使用来规定部分刷新区域,从

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

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

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