MFC框架基础介绍PPT课件

上传人:工**** 文档编号:569432963 上传时间:2024-07-29 格式:PPT 页数:78 大小:1.05MB
返回 下载 相关 举报
MFC框架基础介绍PPT课件_第1页
第1页 / 共78页
MFC框架基础介绍PPT课件_第2页
第2页 / 共78页
MFC框架基础介绍PPT课件_第3页
第3页 / 共78页
MFC框架基础介绍PPT课件_第4页
第4页 / 共78页
MFC框架基础介绍PPT课件_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《MFC框架基础介绍PPT课件》由会员分享,可在线阅读,更多相关《MFC框架基础介绍PPT课件(78页珍藏版)》请在金锄头文库上搜索。

1、MFC框架基础介绍 讲师:鲍钰7/29/20241nMicrosoft Foundation Classn微软基础类微软基础类7/29/20242MFC基础基础用传统的Windows编程方法开发应用程序,你会深刻地体会到,即使是开发一个简单地Windows应用程序也需要对Windows的编程原理有很深刻的认识,同时也要手工编写很多的代码。因为程序的出错率几乎是随着代码长度的增加呈几何级数增长的,这就使得高度程序变得非常困难。所以传统的Windows编程是需要极大的耐心和丰富的编程经验的。7/29/20243MFC基础基础近几年来,面向对象技术无论是在理论还是实践上都在飞速地发展。面向对象技术中

2、最重要的就是“对象”的概念,它把现实世界中的气球、自行车等客观实体抽象成程序中的“对象”。这种“对象”具有一定的属性和方法,这里的属性指对象本身的各种特性参数。如气球的体积,自行车的长度等,而方法是指对象本身所能执行的功能,如气球能飞、自行车能滚动等。一个具体的对象可以有许多的属性和方法,面向对象技术的重要特点就是对象的封装性,对于外界而言,并不需要知道对象有哪些属性,也不需要知道对象本身的方法是如何实现的,而只需要调用对象所提供的方法来完成特定的功能。从这里我们可以看出,当把面向对象技术应用到程序设计中时,程序只是在编写对象方法时才需要关心对象本身的细节问题,大大部部分分的的时时间间是是放放

3、在在对对对对象象的的方方法法的的调调用用上上,组织这些对象进行协同工作。组织这些对象进行协同工作。7/29/20244MFC基础基础MFC的英文全称是Microsoft Fundation Classes,即微软的基本类库,MFC的本质就是一个包含了许多微软公司已经定义好的对象的类库,自从1993年美国微软公司推出Visual C+ 1.0后 便 配 套 推 出 了 微 软 基 础 类 库 MFC 1.0( Microsoft Founddation Class)。MFC 1.0第一个拉开了以面向对象的程序设计方法编制多任务、多进程的GUI应用软件系统的序幕。微软公司在16位平台上几乎没有停留

4、多久,便陆续推出了MFC 1.5,MFC 2.0(含支持32位的Win32),MFC3.0,MFC 4.0。1997年5月 随着Visual C+ 5.0的问世,人们看到了支持Web应用和ActiveX的MFC 6.0基础类库系统。7/29/20245MFC基础基础虽然我们要编写的程序在功能是千差万别的,但从本制裁上来讲,都可以化归为用户界面的设计,对文件的操作,多媒体的使用,数据库的访问等等一些最主要的方面。这一点正是微软提供MFC类库最重要的原因,在这个类库中包含了100多个程序开发过程中最常用到的对象。在进行程序设计的时候,如果类库中的某个对象能完成所需的功能,这时我们只要简单地调用已有

5、对象的方法就可以了。我们还可以利用面向对象技术中很重要的“继承”方法从类库中的已有对象派生出我们自己的对象,这时派生出来的对象除了具有类库中对象的特性和功能之外,还可以由我们自己根据需要加上所需的特性和方法,产生一个更专门的,功能更为强大的对象。当然,你也可以在程序中创建全新的对象,并根据需要不断完美对象的功能。7/29/20246MFC基础基础正是由于MFC编程方法充分利用了面向对象技术的优点,它使得我们编程时极少需要关心对象方法的实现细节,同时类库中的各种对象的强大功能足以完成我们程序中的绝大部分所需功能,这使得应用程序中程序员所需要编写的代码大为减少,有力地保证了程序良好的可调试性。7/

6、29/20247MFC基础基础n最后要指出的是,MFC类库在提供对象的各种属性和方法都是经过地谨慎地编写和严格地测试,可靠性很高,这就保证了使用MFC类库不会影响程序的可靠性和正确性。nMFC是很庞大的。例如,版本7.0中包含了大约200个不同的类。万幸的是,你在典型的程序中不需要使用所有的函数。事实上,你可能只需要使用其中的10多个MFC中的不同类就可以建立一个非常漂亮的程序。 7/29/20248微软基础类库微软基础类库MFCCDocumentCObjectCCmdTargetCWinThreadCWinAppCOleControlModuleApplicationuserdocument

7、CDocTemplateCSingleDocTemplateCMultiDocTemplateCViewCWndCFrameView7/29/20249MFC体系结构体系结构nMFC是个相当庞大的类库,各个类间的继承与派生关系井井有条。 CObject类是MFC的基类,其它大部分类都是从CObject派生而来的。CObject类的派生类按功能可分为多个部分。下面简要介绍部分常用的类的派生结构。7/29/202410 窗口类窗口类 图:部分窗口类的继承关系CObjectCCmdTargetCWndCFrameWndCViewCDialogBox7/29/202411n其中,CCmdTarget(

8、命令目标类)是MFC中拥有消息循环和消息处理机制的基类。关于MFC Windows程序中建立消息处理机制的步骤在后面详细介绍。nCWnd类是从CCmdTarget中派生出来的重要类,它是所有窗口类的基类。nCCmdTarget间接派生出了文档/视图结构中应用程序框架中的许多重要的类:CWinApp、CFrameWnd、CDocument、CView等(SDI应用程序框架的四个主要的类)。 7/29/202412应用程序框架类应用程序框架类 图:应用程序框架类的继承关系CWinApp类是从CCmdTarget中派生出来的最重要的类,每个用MFC编写的Windows程序必须有一个它的派生类的对象,

9、它代表一个应用程序,整个程序的运行都由它负责。CWinApp类很大程度上隐藏了API Windows程序中WinMain函数。CObjectCCmdTargetCWinThreadCDocumentCWinApp7/29/202413图形绘制类 图:图形绘制类的继承关系图形绘制类的基类是CDC(设备环境类)。CDC类提供了基本的绘图及文本输出函数。 CObjectCDCCClientDCCPaintDCCWindowDC7/29/202414图形对象类图形对象类 图:部分绘图对象类的继承关系绘图对象类提供给CDC及其派生类在绘图时所需的各种图形对象,如画笔、刷子、字体等。 CObjectCGd

10、iObjectCPenCBrushCFont7/29/202415MFC体系结构体系结构nMFC主要组成部分:类、宏和全局函数。n类是MFC中最主要的内容。MFC类是以层次结构方式组织起来的。MFC中的类分成两部分,除了一些辅助类,大多数的MFC类是直接或间接从根类CObject派生而来。n几乎每一个派生层次都与一具体的Windows实例相对应,如文档类、窗口类和视图类等。nMFC宏主要功能:消息映射、运行时对象类型服务、诊断服务、异常处理。 nMFC约定:全局函数以“Afx”为前缀,全局变量以“afx”为前缀。 7/29/202416 宏宏就是用预处理指令#define定义一个标识符,用它来

11、表示一个字符串或一段源代码。MFC宏宏作为MFC类库的一个组成部分在MFC应用程序中经常出现。MFC宏在Afxwin.h、Afx.h及Afxmsg_.h等MFC头文件中分别进行了定义。 MFC提供的宏有很多,常用的包括消息映射宏、运行时类型识别的宏、调试宏和异常宏等,下表列出了一般MFC编程时要用到的宏。 MFC宏宏 7/29/202417RUNTIME_CLASS获得运行时类的CRuntimeClass结构的指针DECLARE_DYNAMIC提供基本的运行时类型识别(声明)IMPLEMENT_DYNAMIC提供基本的运行时类型识别(实现)DECLARE_DYNCREATE动态创建(声明)IM

12、PLEMENT_DYNCREATE动态创建(实现)DECLARE_SERIAL对象序列化(声明)IMPLEMENT_SERIAL对象序列化(实现)DECLARE_MESSAGE_MAP声明消息映射表BEGIN_MESSAGE_MAP开始建立消息映射表END_MESSAGE_MAP结束建立消息映射表ON_COMMAND命令消息映射宏ON_MESSAGE自定义消息映射宏ON_WM_MFC预定义消息映射宏ON_BN_,ON_CBN_等控件通知(Notification)消息映射宏7/29/202418MFC调试宏调试宏 跟踪声明和断言在查找程序设计错误时是非常有用的。跟踪声明可以让程序在运行过程中遇

13、到跟踪声明时在输出窗口显示指定的信息,而断言使程序在断言条件不成立时暂停程序的运行。MFC提供了一些跟踪声明和断言宏用于程序调试,这些宏只能用于DEBUG版本应用程序的调试状态。1TRACE()宏语法说明如下:TRACE (); 其中参数是由输出格式和变量等组成的输出表达式,其格式与函数printf()的参数一样,它指定调试时要在Output窗口输出的内容。 7/29/202419char* szName = “LiMing”;int nAge = 18;TRACE(“Name = %s, Age = %d n”, szName, nAge );(只有在调试的时候才可以使用,才可以有结果输出)

14、(只有在调试的时候才可以使用,才可以有结果输出) 例例1 对于以下代码:调试时在Output窗口输出以下内容:Name=LiMing,Age=187/29/202420例例2 设自定义一个CFrameWnd的派生类CMyFrame,在程序中构建一个与CMyFrame相关联的文档模板对象,并为构键的文档模板创建框架窗口:CMyFrame*pFrame=(CMyFrame*)AfxGetMainWnd();ASSERT(pFrame-IsKindOf(RUNTIME_CLASS (CMyFrame); /判断pFrame的类型pFrame-DoSomeOperation();ASSERT(1=2)

15、;/当条件为假时,退出程序当条件为假时,退出程序调试的时候可以调用调试的时候可以调用7/29/202421目录MFCBaseMacro下例程nF5看TRACE信息,右键ASSERT退出7/29/202422常用的常用的MFC类类 MFC库中的类按层次关系划分类n根类:根类:CObjectn应用程序体系结构类应用程序体系结构类n窗口、对话框和控件类窗口、对话框和控件类n绘图和打印类绘图和打印类n简单数据类型类简单数据类型类n数组、列表和映射类数组、列表和映射类n文件和数据库类文件和数据库类nInternet和网络工作类和网络工作类nOLE类类n调试和异常类调试和异常类7/29/202423CRu

16、ntimeClass结构结构 nCRuntimeClass在MFC中是以结构的方式定义,它含有使用CRuntimeClass结构的类的有关信息,与CObject类一同实现运行时类型识别的功能。CRuntimeClass结构包含了类名、对象所占存储空间大小及类的版本号等成员变量和动态对象创建、派生关系判断等成员函数。 n每个从CObject类派生的类都有一个CRuntimeClass对象同它关联。要使用CRuntimeClass结构,必须结合使用RUNTIME_CLASS()宏和其它有关运行时类型识别的MFC宏。 7/29/202424CObject类类n由于MFC中大部分类是从CObject类

17、继承而来的,CObject类描述了几乎所有的MFC类的一些公共特性,CObject类为程序员提供了对象诊断、运行时类型识别和序列化等功能。 n对象诊断。MFC提供了两种诊断特性:利用成员函数AssertValid()进行对象有效性检查,使得类可以在继续运行前对自己进行正确性检查;利用成员函数Dump()输出对象的数据成员的值。 n运行时访问类的信息:提供GetRuntimeClass()和IskindOf()两个成员函数来支持运行时类型识别。n对象序列化。 7/29/202425命令相关类:命令相关类:CCmdTarget类类n该类是CObject的子类,它是MFC库中所有具有消息映射属性的基

18、类。消息映射规定了当一对象接收到消息命令时,应调用哪一个函数对该消息进行处理。n设置光标。CCmdTarget类定义3个函数用于改变光标状态:BeginWaitCursor()将光标改为沙漏形状,EndWaitCursor()将光标改回调用BeginWait- Cursor()之前的形状,RestoreWaitCursor()用于将光标还原为等待状态。 voidCMyView:OnSomeCommand()BeginWaitCursor(); /显示沙漏状光标./进行某种操作EndWaitCursor();/恢复原来光标的形状7/29/202426窗口应用程序类:窗口应用程序类: CWinAp

19、p类类n在MFC应用程序中,CWinApp类取代了WinMain()主函数在SDK应用程序中的地位。传统SDK应用程序WinMain()函数完成的工作现在由类CWinApp的InitApplication()、InitInstance()和Run()三个成员函数承担。nCWinApp类封装了初始化、运行、终止应用程序的代码。在任何MFC应用程序中有且仅有一个CWinApp派生类的对象,它代表了程序中运行的主线程,也代表了应用程序本身。7/29/202427可视对象类:可视对象类:CWnd类类nCWnd类由CCmdTarget类直接派生而来,该类及其派生类的实例是一个窗口。CWnd类代表了MFC

20、中最基本的GUI对象,它是一个功能最完善、成员函数最多的MFC类。n窗口的实例包括应用程序主窗口、对话框和控件等。nCWnd类提供的功能包括注册新窗口类、创建窗口及子窗口、获取窗口、管理窗口、访问窗口及控件、控制窗口光标、创建和使用句柄和支持工具提示等, CWndCWnd提供了提供了MFCMFC中所有窗中所有窗口类的基本功能,是口类的基本功能,是CCmdTargetCCmdTarget类的子类类的子类创建创建WindowsWindows窗口要分两窗口要分两步进行步进行引入构造函数,构引入构造函数,构造一个造一个CWndCWnd对象对象调用调用CreateCreate建立建立WindowsWin

21、dows窗窗口,并将它连到口,并将它连到CWndCWnd对象上对象上7/29/202428其它可视对象类其它可视对象类视类:视类:CViewCView类类该类表示框架窗口的客户区和显示文档数据并接收输入的客户区该类表示框架窗口的客户区和显示文档数据并接收输入的客户区,其派生类主要有如下几种:其派生类主要有如下几种:lCScrollViewCScrollView:具有滚动功能的视的基类:具有滚动功能的视的基类lCFormViewCFormView:其布局在对话资源中定义的滚动视:其布局在对话资源中定义的滚动视lCEditViewCEditView:具有文本编辑、查找、替换和滚动功能的视:具有文本

22、编辑、查找、替换和滚动功能的视7/29/202429其它可视对象类其它可视对象类菜单类:菜单类:CMenuCMenu类类该类是该类是CObjectCObject类的子类,用于管理菜单。它是一个类的子类,用于管理菜单。它是一个Windows HMenuWindows HMenu的封装,提供了与窗口有关的菜单资的封装,提供了与窗口有关的菜单资源建立、修改、跟踪及删除的成员函数。源建立、修改、跟踪及删除的成员函数。对话框类:对话框类:CDialogCDialog类类由于对话框是一个特殊的窗口,所以该类是从由于对话框是一个特殊的窗口,所以该类是从CWndCWnd类类中派生出来的。中派生出来的。对话框子

23、层次结构包括通用对话框类对话框子层次结构包括通用对话框类CDialogCDialog以及支持文件选择、颜色选择、字体选择、打以及支持文件选择、颜色选择、字体选择、打印、替换文本的公共对话框子类。印、替换文本的公共对话框子类。7/29/202430其它可视对象类其它可视对象类控件类控件类 控件子层次结构包括若干类,控件子层次结构包括若干类,使用这些类可建立静态文本、使用这些类可建立静态文本、命令按钮、位图按钮、列表框、组合框、滚动条、编辑框等。命令按钮、位图按钮、列表框、组合框、滚动条、编辑框等。这些直观控件为这些直观控件为WindowsWindows应用程序提供了各种输入和显示界面。应用程序提

24、供了各种输入和显示界面。控件条类:控件条类:CControlBarCControlBar类类 控件条子层次结构为工具条、状态条、对话条和分割窗口控件条子层次结构为工具条、状态条、对话条和分割窗口建立模型。建立模型。该类是该类是CToolBarCToolBar、CStatusBarCStatusBar、CDialogBarCDialogBar的基类,的基类,负责管理工具条、状态条、对话条的一些成员函数。控件条指负责管理工具条、状态条、对话条的一些成员函数。控件条指的是连接在主窗口框架的顶部或底部的小窗口的是连接在主窗口框架的顶部或底部的小窗口7/29/202431其它可视对象类其它可视对象类绘画

25、对象类:绘画对象类:CGdiObjectCGdiObject类类图形绘画对象子层次结构以图形绘画对象子层次结构以CGdiObjectCGdiObject类为根类,可用于建类为根类,可用于建立绘画对象模型,立绘画对象模型,如画笔、刷子、字体、位图、调色板等。如画笔、刷子、字体、位图、调色板等。设备描述表类:设备描述表类:CDCCDC类类该类及其子类支持设备描述表对象,是该类及其子类支持设备描述表对象,是CObjectCObject类的子类。类的子类。CDCCDC类是一个较大的类,包括许多成员函数,如映射函数、类是一个较大的类,包括许多成员函数,如映射函数、绘画工具函数、区域函数等,通过绘画工具函

26、数、区域函数等,通过CDCCDC对象的成员函数可以对象的成员函数可以完成所有的绘画工作完成所有的绘画工作7/29/202432CFrameWnd类类nCFrameWnd类是CWnd类的派生类,主要用来掌管一个窗口,它取代了SDK应用程序中窗口函数WndProc()的地位。nCFrameWnd类的对象是一个框架窗口,包括边框、标题栏、菜单、最大化按钮、最小化按钮和一个激活的视图。nCFrameWnd支持SDI界面,对于MDI界面,使用其两个派生类CMDIFrameWnd和CMDIChildWnd。nCFrameWnd提供了若干个成员函数用于获得和设置活动文档、视图、图文框、标题栏、状态栏等操作。

27、 7/29/202433CDocument和和CView类类nCDocument类在应用程序中作为用户文档类的基类,它代表了用户存储或打开的一个文件。CDocument类的主要功能是把对数据的处理从对用户的界面处理中分离出来,同时提供了一个与视图类交互的接口。 nCDocument类支持标准的文件操作,如创建、打开和存储一个文档等。 nCView类是MFC中一个很基本的类,它作为其它MFC视图类和用户视图派生类的基类。 7/29/202434通用类通用类此类提供了许多通用服务,例如文件此类提供了许多通用服务,例如文件I/OI/O、诊断和异常处理等,、诊断和异常处理等,此外还包括如数组和列表等存

28、放数据集的类此外还包括如数组和列表等存放数据集的类1 1文件类:文件类:CFileCFile类和类和CArchiveCArchive类类用以编写输入输出处理函数用以编写输入输出处理函数2 2异常类:异常类:CExceptionCException类类是所有异常情况的基类。不能直接建立是所有异常情况的基类。不能直接建立CExceptionCException对象,只能建立派生类的对对象,只能建立派生类的对象,用派生类来捕获指定的异常情况象,用派生类来捕获指定的异常情况3 3模板收集类模板收集类这些类可以将多种对象存放到数组、列表和这些类可以将多种对象存放到数组、列表和“ 映射映射”中。但这些收集

29、类是模板,它们的参数确定了存放在中。但这些收集类是模板,它们的参数确定了存放在集合中的对象类型。集合中的对象类型。7/29/202435MFC 中全局函数和全局变量中全局函数和全局变量以以Afx为前缀的函数为前缀的函数( (数据库类函数和数据库类函数和DDX函数除外函数除外) )和变量,和变量,在目前的版本中,都表示全局函数或全局变量。在目前的版本中,都表示全局函数或全局变量。 nAfxAbort: 无条件终止一个应用程序无条件终止一个应用程序nAfxBeginThread: 创建一个新线程并执行它创建一个新线程并执行它nAfxEndThread: 终止当前正在执行的线程终止当前正在执行的线程

30、nAfxFormatString: 格式化字符串格式化字符串nAfxMessageBox: 显示一个显示一个Windows消息框消息框nAfxGetApp: 返回当前应用程序对象的指针返回当前应用程序对象的指针nAfxGetAppName: 返回应用程序的名称返回应用程序的名称nAfxGetMainWnd: 返回指向应用程序主窗口的指针返回指向应用程序主窗口的指针nAfxGetInstanceHandle:返回标识当前应用程序对象的句柄:返回标识当前应用程序对象的句柄nAfxRegisterWndClass: 注册用于创建注册用于创建Windows窗口的窗口类窗口的窗口类7/29/202436

31、例如调用例如调用AfxMessageBox函数将弹出一个消息框,函数将弹出一个消息框,其功能与其功能与CWinApp中的中的DoMessageBox相同。相同。AfxMessageBox原型如下:原型如下:int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 )7/29/202437int AfxMessageBox(LPCTSTR lpszText,UINT nType = MB_OK, UINT nIDHelp = 0 )nMB_ABORTRETRYIGNOREnMB_OKnMB_OKCANCEL

32、nMB_RETRYCANCELnMB_YESNOnMB_YESNOCANCEL7/29/202438常用的三种工程1、Win32 Console ApplicationWin32 Console Application(控制台应用程序) 用于创建DOS控制台的C/C+程序(Windows DOS虚拟机下的DOS程序),简称DOS程序。2、Win32 ApplicationWin32 Application(Windows应用程序:C或底层面向对象程序) 用于创建的Windows C/API程序或MFC Windows程序(MFC:Micrsoft Foundation Classes,VC6.

33、0预定了近二百三十个类)3 、MFC AppWizardMFC AppWizard(MFC Windows程序) 用向导创建MFC Windows程序,并生成应用程序框架(即自动生成底层代码)。编程时在原代码基础上增加新的应用代码即可。7/29/202439用Win32 Console Application创建DOS控制台程序用Win32 Application创建创建Windows程序1、创建创建Windows API程序程序2、创建创建MFC Windows程序程序7/29/202440用MFC AppWizardMFC AppWizard创建创建MFC Windows程序 该工程创建程

34、序的类型:1、Dialog based;2、SDI;3、MDI例例:用MFC AppWizardMFC AppWizard创建SDI单文档面应用程序,并在客户区(100,100)处开始显示“Hello,World!”的字符串。见操作演示。目录目录MyMFC下例程下例程 7/29/202441创建第一个MFC程序7/29/202442Step17/29/202443Step27/29/202444Step37/29/202445Step47/29/202446Step57/29/202447Step67/29/202448Step77/29/202449单文档应用程序创建的类nCAboutDlg

35、对话框类nCMyMFCApp应用程序类nCMyMFCDoc文档类nCMyMFCView视图类nCMainFrame框架类7/29/2024507/29/2024517/29/202452n尽管每个应用程序具体实现的功能不同,但同一类程序的基本结构是相同的。因此,通常采用MFC AppWizard创建一个MFC应用程序框架应用程序框架。nMFC不仅仅是一个类库,它还提供了一层建立在MFC类对象封装上的附加应用程序框架。应用程序框架是为了生成一般的应用程序所必需的各种软组件的集成。n类库只是一种可以嵌入到任何程序中的、提供某些特定功能的类的集合。而应用程序框架却定制了应用程序的结构和源代码,其中的

36、类对象既相互独立、又相互作用,形成一个统一的整体。 MFC应用程序框架应用程序框架 7/29/202453nMFC应用程序框架提供了构建应用程序所需要的类,在程序运行时能够生成运行时类的对象,如代表应用程序对象、文档对象、视图对象和框架窗口对象。应用程序对象theApp是一个唯一的全局变量,它的主要功能是通过调用WinMain()主函数启动程序的运行。nMYMFC.CPP 中代码:CMyMFCApp theApp;nMFC应用程序框架也有一个作为程序入口点的WinMain()主函数,但在源程序中看不见该函数,它在MFC中已定义好并同应用程序相链接。 应用程序框架中的对象应用程序框架中的对象7/

37、29/202454n在MFC应用程序的CWinApp派生类对象theApp是一个全局变量,代表了应用程序运行的主线程。它在程序整个运行期间都存在,它的销毁意味着运行程序的消亡。nMFC应用程序启动时,首先创建应用程序对象theApp,这时将自动调用应用程序类的构造函数初始化对象theApp,然后由应用程序框架调用MFC提供的AfxWinMain()主函数。 nAfxWinMain()主函数首先通过调用全局函数AfxGetApp()获取应用程序对象theApp的指针pApp,然后通过pApp调用应用程序对象的有关成员函数,完成程序的初始化和启动工作,最后调用成员函数Run(),进入消息循环。n程

38、序运行后将收到WM_PAINT消息,调用OnPaint()函数绘制客户区窗口。如果Run()收到WM_QUIT消息,则结束消息循环,然后调用函数ExitInstance(),结束程序运行。 MFC应用程序的生与死应用程序的生与死 7/29/202455MFC应用程序运行后各函数的调用关系应用程序运行后各函数的调用关系 InitInstance()函数是派生类唯一需要重载的函数,它负责应用程序的初始化,如初始化数据、创建文档模板、处理命令行以及显示应用程序主窗口。7/29/202456MFC基本框架的生成(目录MFCBase) 7/29/202457MFC框架的生成 7/29/202458MFC

39、框架的生成 7/29/202459MFC框架的生成 7/29/202460MFC框架的生成 7/29/202461MFC框架的生成 7/29/202462MFC框架的生成 7/29/202463MFC框架的生成 7/29/202464MFC框架的生成 7/29/202465MFC框架的生成 7/29/202466MFC框架的生成 7/29/2024677/29/2024687/29/202469MFC框架的生成 7/29/2024707/29/202471MFC框架的生成 7/29/202472MFC框架的生成:修改如下代码public:CMyFrame(); 7/29/202473MFC框架

40、的生成:添加如下代码CString str=MFC Windows程序基础框架;Create(NULL,str);/创建主窗口7/29/202474MFC框架的生成:添加如下代码BOOL InitInstance();7/29/202475MFC框架的生成:添加如下代码框架的生成:添加如下代码#include MyFrame.h“CMyApp myApp;CMyApp:InitInstance()m_pMainWnd = new CMyFrame;m_pMainWnd-ShowWindow( m_nCmdShow );m_pMainWnd-UpdateWindow();return true;7/29/202476MFC框架的生成结束!运行效果如下:例程见目录框架的生成结束!运行效果如下:例程见目录MFCBase7/29/202477个人观点供参考,欢迎讨论

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号