《visual c++程序设计教程》第七章框架窗口、文档和视图

《visual c++程序设计教程》第七章框架窗口、文档和视图

ID:20112411

大小:364.00 KB

页数:80页

时间:2018-10-10

《visual c++程序设计教程》第七章框架窗口、文档和视图_第1页
《visual c++程序设计教程》第七章框架窗口、文档和视图_第2页
《visual c++程序设计教程》第七章框架窗口、文档和视图_第3页
《visual c++程序设计教程》第七章框架窗口、文档和视图_第4页
《visual c++程序设计教程》第七章框架窗口、文档和视图_第5页
资源描述:

《《visual c++程序设计教程》第七章框架窗口、文档和视图》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章框架窗口、文档和视图7.1应用程序组成结构1.单文档应用程序(SingleDocumentInterface,SDI)在单文档界面程序中,用户在同一时刻只能操作一个文档,如记事本程序。在这些应用程序中,打开文档时会自动关闭当前打开的活动文档,若文档修改后尚未保存,会提示是否保存所做的修改。因为一次只开一个窗口,因此不像WORD那样需要一个窗口菜单。单文档应用程序一般都提供一个“文件”菜单,在该菜单下有一组命令,用于新建文档、打开已有文档、保存或另存为等。这类程序相对比较简单,常见的应用程序有终端仿

2、真程序和一些工具程序。2.多文档应用程序(MultipleDocumentInterface,MDI)在多文档界面应用程序中,允许同时操作多个文档,如MicrosoftWord。可以打开多个文件(同时也就为每个文件打开一个窗口),可以通过切换活动窗口激活相应的文档进行编辑。多文档应用程序也提供一个“文件”菜单,用于新建、打开、保存文档。与单文档应用程序不同的是,它往往还提供一个“关闭”菜单项,用于关闭当前打开的文档。多文档应用程序还提供一个“窗口”菜单,管理所有打开的子窗口,包括对子窗口的新建、关闭、层

3、叠、平铺等。关闭一个窗口时,窗口内的文档也被自动关闭。3.基于对话框的应用程序(DialogbasedApplication)基于对话框的应用程序非常简单,由应用程序类、对话框类(可以作为其它控件的容器)构成。它的生命周期可概括为:通过应用程序类的InitInstance()函数,构造一个模式对话框对象;调用DoModal函数,让基于对话框的应用程序像对待普通对话框一样接收和分配消息;用户退出对话框后,程序也就随之结束。常见的基于对话框的应用程序有计算器等(以对话框为容器布局的程序)。7.1.1CMai

4、nFrame类和窗口MFC应用程序主要由3部分组成:窗口、文档和视图。其中窗口是整个应用程序的载体,也是应用程序不可缺少的部分。窗口也叫框架窗口,它可以分为两类:一类是主框架窗口(也叫主窗口),另一类是子框架窗口(也叫子窗口)。在MFC应用程序中,框架(Framework)是应用程序所应具备的软件模块按一定的结构组成的集合。框架窗口可以理解为框架的可视化显示形式。主框架窗口是应用程序放置在桌面(DeskTop)上的那个窗口,每个应用程序只能有一个主窗口,主窗口的标题栏上通常显示应用程序的名称。子框架窗口

5、是应用程序主框架窗口内的子窗口,它占据了主框架窗口客户区的部分或全部。视图是子框架窗口内的子窗口,它占据了子框架窗口客户区的部分或全部。图7-1标明了多文档应用程序中主框架窗口、子框架窗口和视图之间的关系。由于单文档应用程序没有子框架窗口,所以可以认为视图充满了整个主框架窗口。使用MFCAppWizard创建单文档应用程序后,包含主框架窗口类的文件分别为MainFrm.h和MainFrm.cpp。主框架窗口类是由CFrameWnd派生而来的,类名为CMainFrame。而对于多文档应用程序,主框架窗口由

6、CMDIFrameWnd派生。CMainFrame类有4个重要的函数:AssertValid、Dump、OnCreate和PreCreateWindow。这4个函数都是由应用程序向导自动声明和定义的,无须人为干预,不过了解它们的作用还是非常有必要的,在需要的情况下,用户还可以修改它们以达到预定效果。它们各自的功能如下:(1)AssertValid函数用来诊断CMainFrame对象的有效性。(2)Dump函数用来输出CMainFrame对象的状态信息。(3)OnCreate函数用来创建工具栏m_wndT

7、oolBar和状态栏m_wndStatusBar,而在视图窗口中是由基类CFrameWnd的成员函数OnCreate通过调用OnCreateClient函数创建的。(4)PreCreateWindow函数是一个虚函数。如果要创建一个非默认风格的窗口,可以重载这个函数,在函数中通过修改Createstruct结构参数来改变窗口类、窗口风格、窗口大小和位置等。7.1.2CDocument类和文档CDocument类是CCmdTarget类的派生类,其派生关系如图74所示。CDocument类为用户定义的文

8、档类提供了基本的函数功能,它支持标准操作,如创建、装载、保存等。一个应用程序可以支持多种类型的文档,每种类型的文档都通过一个文档模板对象建立与各自视图的联系。不论是SDI应用程序还是MDI应用程序,文档类都是从CDocument类派生出来的。在文档/视图结构中,文档类的主要任务通常是对数据进行管理和维护,数据将保存在文档类的成员变量中,视图通过对这些变量的访问来获取或返回数据,并能通过这种方式来更新并显示数据。从CDocument类派生文档

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

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

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