《vc环境与MFC框架》PPT课件.ppt_第1页
《vc环境与MFC框架》PPT课件.ppt_第2页
《vc环境与MFC框架》PPT课件.ppt_第3页
《vc环境与MFC框架》PPT课件.ppt_第4页
《vc环境与MFC框架》PPT课件.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章 VC+开发环境与 MFC框架程序剖析,本章主要内容: 1. Visual C+6.0的安装与卸载 2. Visual C+6.0开发环境界面 3. MFC 发展过程 4. MFC 的控制流程 5. MFC框架程序 6. MFC应用程序框架视图 7. MFC应用程序框架分析 8. 怎样在框架中添加内容,2019/6/10,1,2,1. Visual C+6.0的安装与卸载 将Visual C+6.0安装光盘放在光驱中,光盘中的autorun.exe会自动运行,调出VisualC+6.0的安装向导,如图所示。,2019/6/10,3,2. Visual C+6.0开发环境界面 在开始菜单中,选择“程序”中的“Microsoft Visual C+6.0”菜单项,启动Visual C+6.0程序,进入Visual C+6.0开发环境,开发环境界面主要由标题栏、菜单栏、工具栏、项目工作区窗口、文档窗口、输出窗口和状态栏等组成,如下图所示。 菜单栏包含开发环境所有功能,它为用户提供了文档操作、程序的编译、调试、窗口操作等一系列功能。 项目工作区窗口包含用户项目的一些信息,包括类视图(Class View页)、项目文件视图(File View页)和资源视图(Resource View页)等。输出窗口一般出现在开发环境界面的底部,包括编译、调试、查找文件等相关信息输出。,2019/6/10,y6,4,项目工作区,输出窗口,工具栏,菜单栏,标题栏,信息栏输出,2019/6/10,5,文件视图,资源视图,类视图,2019/6/10,6,3. MFC 的发展过程 1992年 MFC 1.0 应用程序中非图形的类和应用程序图形用户 界面类。 1993年 MFC 2.0 增加了一些构造类。 1993年 MFC 2.5 增加数据库类、基于16位应用程序。 1994年 MFC 3.0 增加开发32位应用程序的类,提供了丰富的 用户界面程序支持。 1994年 MFC 4.0 增加新的控件,支持 OLE (对象连接嵌入)类 扩展功能。实现网络通信程序的编写。提供了 MAPI 接口,开发 邮件、消息处理的应用程序。 1997年 MFC4.21增强了对数据库程序的支持,出现了 visual c+5.0,2019/6/10,7,4. MFC 的控制流程(CWinApp 类 ),Getmessage( ) TranslateMessage( ) DispatchMessage( ) WindowProc( ),Run( ),WinMain( ),Virtual BOOL InitApplication( ),Virtual BOOL InitInstance( ),ExitInstance释放,清理,OnIdle( )空闲处理,Registerclass CreateWindow ShowWindow UpdateWindow,mfc,api,2019/6/10,8,有可用消息?,空闲处理,有可用消息?,有空闲任务?,等到直到出现消息,Get/Translate/Dispatc,y,n,y,n,y, MFC的消息处理方法,2019/6/10,9,5. MFC框架程序 从很多的例子可以看到,利用API函数进行图形程序设计时 大量的代码需要用户自己编写,编程工作量大, 而 利用MFC与 向导(AppWizard)可方便地编制交互程序。 首先使用AppWizard生成应用程序的基本框架;然后用 ClassWizard建立应用程序的类、消息处理、数据处理函数或定义 控件的属性、事件与方法,最后将各应用程序的功能添加到类中。 MFC是用来编写应用程序的C+类集,该类集以层次结构组织 起来,其中封装了大部分API函数与控件,功能包含整个系统,提供 了丰富的图形环境下的框架。,2019/6/10,10, 创建一个应用程序框架,VC+能创建各种类型的应用程序,不同的应用程序具有不同的程序框架,AppWizard是一个创建程序框架的生成工具。,2019/6/10,11,播放器,选单文档!,2019/6/10,12,不支持数据库,2019/6/10,13,设置应用程序支持复合文档,可以使用注册控件,2019/6/10,14,具有一个浮动的工具条 具有可初始化的状态条 具有打印及打印预览功能 具有上下文帮助功能 (3D控件) 是否使用消息 API,2019/6/10,15,Windows 风格,对源程序加入注释,共享动态连接库,*.exe 可发送执行,2019/6/10,16,2019/6/10,17,2019/6/10,18, 编译连接 编译连接源代码、生成执行文件、运行文件,2019/6/10,19,包含Windows界面、一个标题、图标、主菜单、一个工具条、 一个状态条。,2019/6/10,20,6. MFC应用程序框架视图,文件视图,2019/6/10,21,文件展开,2019/6/10,22,源文件与头文件,派生类的定义,2019/6/10,23,类 视 图,2019/6/10,24,派生,双 击,2019/6/10,25,组合键控制,显示信息,资源视图,2019/6/10,26,7. MFC应用程序框架分析 MFC AppWizard生成的一个MFC应用程序,对该文件的实 现过程是怎样的,本节将对程序的实现过程进行分析。 (1)程序类和文件 普通的应用程序包含四个主要类、即文档类、视图类、主框架 窗口类、应用类。各类由头文件、实现文件构成,(头文件是类、 结构的定义;实现文件是各种函数的代码)。 文档类 类名:CDrawDOC CDrawDOC是CDocument的派生类。 文件: Drawdoc.h 头文件(类的定义) Drawdoc.cpp 实现文件(类的实现、程序),2019/6/10,36,2019/6/10,27,28,文档类主要管理应用程序中的数据。不管理物理磁盘输入输出。 函数: 定义构造函数与析构函数CDrawDoc ( ), CDrawDoc( ) 初始化函数 OnNewDocument( ), 初始化文档对象。 串处理函数 Serialize( ), 对文件数据读写。 建立一个图形系统时,存储图形元素的数据结构。,调试,2019/6/10,29, 视图类 类名:CDrawView CDrawView是Cview的派生类。 文件: DrawView.h DrawView.cpp 视图类主要管理应用程序中的视图窗口,显示文档类的数据. 功能:显示文档类的数据,处理用户输入,管理窗口,实现图 形系统时,屏上显示,打印机上打印图形。 函数: 获得文档指针的函数 GetDocument ( ) 绘图函数 OnDraw ( ) 修改窗口函数 PreCreateWindow( ) void CdrawView : OnDraw(CDC * pdc) CDrawDoc * pDoc=GetDocument( ); ASSERT_VALID(pDoc); / add code here ,2019/6/10,30,2019/6/10,31, 框架类 主框架类 类名: CMainFrame CMainFrame是CFrameWnd的派生类。 文件: MainFrm.h MainFrm.cpp 提供一个多文档的主窗口功能及管理窗口中的子窗口(即显 示标题、菜单条、最大化、最小化、系统菜单、工具条及 状态等)。 功能: 定义并创建窗口函数 定义状态栏函数 定义工具条函数 建立消息说明与处理函数 PreCreateWindow( ) 窗口修改函数 OnCreate( ) 消息处理函数,2019/6/10,32,2019/6/10,33, 子框架类 类名:ChildFrm 文件:ChildFrm.h、 ChildFrm.cpp 功能:管理子窗口(子窗口没有自己的菜单条,子窗口在主 窗口内显示) 应用类 类名:CDrawApp CDrawApp是CWinApp的派生类。 文件:Draw.h、Draw.cpp 功能:管理程序的整体,完成前三类外的全部工作。 函数: InitInstance( ) 初始化函数。 Run( ) 消息处理循环。 ExitTnstance( ) 清理工作,释放GDI 及内存。,2019/6/10,34,(2)程序框架中各个类的作用综述 文档类创建的对象负责管理工作,单文档程序中只有一个 分文稿,只需创建一个文档对象负责文稿的管理。 视图类的作用是将文档类中的内容进行显示,单文档 只有一个文档类对象,一个视图类对象。对象把文档内容显示 出来。多文档时多个窗口,一份文稿可以创建多个视图对象。 框架类的对象负责窗口管理工作,框架分主框架与子框架, 单文档框架中,主框架管理一个窗口,多文档中,主框架对象可 以有多个窗口,每个窗口交与子框架管理。 应用程序类创建一个对象,负责建立启动这个工作环境, 并建立起文档、视图、框架之间的互相联系。,2019/6/10,( 3)程序框架中各个类对象的相互调用关系,2019/6/10,8. 怎样

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论