已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,(1)MFC应用程序框架分析,第十三章VC+MFC程序设计,2,MFC:MicrosoftFoundationClass(微软基础类库)利用API函数进行程序设计时,大量的代码需要用户自己编写,编程工作量大,本章起利用MFC与向导(AppWizard)编制作图程序。首先使用AppWizard来生成应用程序的基本框架;然后用ClassWizard来建立应用程序的类、消息处理、数据处理函数或定义控件的属性、事件与方法,最后将各应用程序的功能添加到类中。.MFC概述MFC是用来编写应用程序的C+类集,该类集以层次结构组织起来,其中封装了大部分API函数与控件,功能包含整个系统,提供了丰富的图形环境下的框架。,3,1.MFC发展过程1992年MFC1.0应用程序中非图形的类和应用程序图形用户界面类。1993年MFC2.0增加了一些构造类。1993年MFC2.5增加数据库类、基于16位应用程序。1994年MFC3.0增加开发32位应用程序的类,提供了丰富的用户界面程序支持。1994年MFC4.0增加新的控件,支持OLE(对象连接嵌入)类扩展功能。实现网络通信程序的编写。提供了MAPI接口,开发邮件、消息处理的应用程序。1997年MFC4.21增强了对数据库程序的支持,出现了visualc+5.0,4,MFC的类名表示CAboutDlgClass的首字母类的名字父类的名CAboutDlg:对话框类,它的基类是CDialog,5,2.MFC的控制流程(CWinApp类),WinMain(),VirtualBOOLInitApplication(),VirtualBOOLInitInstance(),Run(),ExitInstance释放,清理,OnIdle()空闲处理,RegisterclassCreateWindowShowWindowUpdateWindow,Getmessage()TranslateMessage()DispatchMessage()WindowProc(),6,有可用消息?,空闲处理,有可用消息?,有空闲任务?,等到直到出现消息,Get/Translate/Dispatch,y,n,y,n,y,MFC的消息处理方法,7,.创建一个应用程序框架,VC+能创建各种类型的应用程序,不同的应用程序具有不同的程序框架,AppWizard是一个创建程序框架的生成工具。,8,9,不支持数据库,10,设置应用程序支持复合文档,11,具有一个浮动的工具条具有可初始化的状态条具有打印及打印预览功能具有上下文帮助功能(3D控件)是否使用消息API支持网络编程,最近文件数,12,Windows风格,对源程序加入注释,共享动态连接库,*.exe可发送执行,13,14,15,编译连接编译连接源代码、生成执行文件、运行文件可得一个Windows界面。包含一个标题,图标,主菜单、一个工具条、一个状态条。,16,文件,.MFC应用程序框架视图,17,文件视图,18,原文件与头文件,派生类的定义,19,类视图,20,双击,派生,21,加速键,状态栏,提示信息,22,.MFC应用程序框架分析MFCAppWizard生成的一个MFC应用程序,对该文件的实现过程是怎样的,本节将对程序的实现过程进行分析。1程序类和文件普通的应用程序包含四个主要类、即文档类、视图类、主框架窗口类、应用类。各类由头文件、实现文件构成,(头文件是类、结构的定义;实现文件是各种函数的代码)。文档类类名:CDrawDOCCDrawDOC是CDocument的派生类。文件:Drawdoc.h头文件(类的定义)Drawdoc.cpp实现文件(类的实现、程序),23,CObjeck,CCmdTarget,CDocument,CObject,CCmdTarget,CObject,CCmdTarget,CWnd,CFrameWnd,CObject,CCmdTarget,CWnd,CView,CWinThreat,CWinApp,命令消息目标类,线程类,各类结构图,24,文档类主要管理应用程序中的数据。不管理物理磁盘输入输出。函数:定义构造函数与析构函数CDrawDoc(),CDrawDoc()初始化函数OnNewDocument(),初始化文档对象。串处理函数Serialize(),对文件数据读写。建立一个图形系统时,存储图形元素的数据结构。,调试,25,视图类类名:CDrawViewCDrawView是Cview的派生类。文件:DrawView.hDrawView.cpp视图类主要管理应用程序中的视图窗口,显示文档类的数据.功能:显示文档类的数据,处理用户输入,管理窗口,实现图形系统时,屏上显示,打印机上打印图形。函数:获得文档指针的函数GetDocument()绘图函数OnDraw()修改窗口函数PreCreateWindow()voidCdrawView:OnDraw(CDC*pdc)CDrawDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);/addcodehere,26,27,框架类主框架类类名:CMainFrameCMainFrame是CFrameWnd的派生类。文件:MainFrm.hMainFrm.cpp提供一个多文档的主窗口功能及管理窗口中的子窗口(即显示标题、菜单条、最大化、最小化、系统菜单、工具条及状态等)。功能:定义并创建窗口函数定义状态栏函数定义工具条函数建立消息说明与处理函数PreCreateWindow()窗口修改函数OnCreate()消息处理函数,28,29,子框架类类名:ChildFrm文件:ChildFrm.h、ChildFrm.cpp功能:管理子窗口(子窗口没有自己的菜单条,子窗口在主窗口内显示)应用类类名:CDrawAppCDrawApp是CWinApp的派生类。文件:Draw.h、Draw.cpp功能:管理程序的整体,完成前三类外的全部工作。函数:InitInstance()初始化函数。Run()消息处理循环。ExitTnstance()清理工作,释放GDI及内存。,30,2程序框架中各个类的作用综述文档类创建的对象负责管理工作,单文档程序中只有一个分文稿,只需创建一个文档对象负责文稿的管理。视图类的作用是将文档类中的内容进行显示,单文档只有一个文档类对象,一个视图类对象。对象把文档内容显示出来。多文档时多个窗口,一份文稿可以创建多个视图对象。框架类的对象负责窗口管理工作,框架分主框架与子框架,单文档框架中,主框架管理一个窗口,多文档中,主框架对象可以有多个窗口,每个窗口交与子框架管理。应用程序类创建一个对象,负责建立启动这个工作环境,并建立起文档、视图、框架之间的互相联系。,31,3程序框架中各个类对象的相互调用关系,CprogramApp处理消息,分配,CMainFrame,CprogramDoc,CprogramView,消息,32,4.怎样在函数OnDraw中添加显示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 预约合同与意向性协议
- 铺位改造出租合同范本
- 餐饮酱汁采购合同范本
- 调料采购配送合同范本
- 2025至2030全球及中国POS现金抽屉行业项目调研及市场前景预测评估报告
- 落地签协议安全协议书
- 鞋店销售劳动合同范本
- 2025年继续教育技巧题库及答案
- 基于改进天牛须搜索算法的七自由度机械臂避障路径规划研究:理论、实践与创新
- 2025出口合同合同书(产品)
- 游戏陪玩平台入驻协议2025
- 新生儿呼吸系统疾病护理评估与干预
- 小儿肺炎健康宣教
- 电焊工考试题及答案下载
- 2025年国考《申论》副省级真题(含答案)
- 2024人教版八年级英语上册Unit5 大单元教学设计
- 2025陕西安康汉滨区招聘城镇社区专职工作人员121人考试参考题库及答案解析
- 口腔门诊护士培训课件
- 电力施工安全风险评估报告
- 牡丹江市烟草公司2025秋招综合管理类岗位面试模拟题及答案
- 轮机安全操作培训内容课件
评论
0/150
提交评论