1、MFC简介MFC,微软基础类(MicrosoftFoundationClasses),是微软提供的用于在C++环境下编写应用程序的一个框架和引擎,是对API函数的专用C++封装,微软做了大量的封装,隐藏了许多内部实现,简化了开发人员的工作量。MFC(MicrosoftFoundationClassLibrary)中的各种类相互结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。MicrosoftVisualC++提供了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。2、系统所用的MFC类的层次图这个图是从MFC类图中所截取的,程序用到的MFC类的一个层次图,从这个图中,可以理解到系统所用到的控件或者类的一个相互关系。(1)CWinApp类每个应用程序从类CWinApp派生出自己的应用程序类,并定义一个全局的对象。该应用程序类包含了Windows下MFC应用程序的初始化、运行和结束过程。基于框架建立的应用程序必须有一个(且只能有一个)从CWinApp派生的类的对象。CWinApp所包含的数据成员主要用于存放和控制应用程序本身的信息,主要数据成员如下。数据成员名称作用入描述m_pszAppName指定了应用程序名称m_hInstance标识了应用程序的当前实例m_lpCmdLine指示一个以NULL结尾的字符串,,微软基础类库还提供了以下全局函数,用于访问你的CWinApp对象以及其它全局信息:全局函数名称功能及描述AfxGetApp获得指向CWinApp对象的指针。AfxGetInstanceHandle获得当前应用程序实例的句柄。AfxGetResourceHandle获得应用程序资源的句柄。AfxGetAppName获得一个字符串指针,其中包含了应用程序的名字。主要的函数功能说明:InitInstance()函数用于初始化实例。Windows下对同一个应用程序可以运行多个实例。例如,如果已经在运行资源管理器,用户还可以再一次或多次启动资源管理器,这样,系统中就有两个或多个资源管理器在运行,这些运行着的资源管理器就是资源管理器应用程序的多个运行实例。当每次启动某个应用程序的一个实例时,WinMain()函数都要调用InitInstance()函数。(2)CWnd类CWnd类提供了微软基础类库中所有窗口类的基本功能。CWnd对象与Windows的窗口不同,但是两者有紧密联系。CWnd对象是由CWnd的构造函数和析构函数创建或销毁的。另一方面,Windows的窗口是Windows的一种内部数据结构,它是由CWnd的Create成员函数创建的,而由CWnd的虚拟析构函数销毁。DestroyWindow函数销毁Windows的窗口,但是不销毁对象。CWnd类和消息映射机制隐藏了WndProc函数。接收到的Windows通知消息通过消息映射被自动发送到适当的CWndOnMessage成员函数。程序开发者可以在派生类中重载OnMessage成员函数以处理成员的特定消息。使用CWnd类同时还能够为应用程序创建Windows的子窗口。先从CWnd继承一个类,然后在派生类中加入成员变量以保存与你的应用程序有关的数据。在派生类中实现消息处理成员函数和消息映射,以指定当消息被发送到窗口时应该如何动作。程序开发者可以经过两个步骤来创建一个子窗口。首先,调用构造函数CWnd以创建一个CWnd对象,然后调用Create成员函数以创建子窗口并将它连接到CWnd对象。当用户关闭你的子窗口时,应销毁CWnd对象,或者调用DestroyWindow成员函数以清除窗口并销毁它的数据结构。在微软基础类库中,从CWnd派生了许多其它类以提供特定的窗口类型。这些类中有许多,包括CFrameWnd,CMDIFrameWnd,CMDIChildWnd,CView和CDialog,被用来进一步派生。从CWnd派生的控件类,如CButton,可以被直接使用,也可以被进一步派生出其它类来。3、初始化流程及消息循环机制基于MFC的对话
[说明]MFC框架说明 来自淘豆网m.daumloan.com转载请标明出处.