第15课 - MFC简介
- 格式:ppt
- 大小:508.50 KB
- 文档页数:21
mfc工作原理
MFC,即Microsoft Foundation Classes,是一种用于开发Windows图形用户界面(GUI)应用程序的编程框架。
其工作
原理可以简要概括如下:
1. MFC是基于面向对象的编程方法,它使用C++语言来实现
应用程序的开发。
开发者在MFC中创建一系列的类,每个类
分别表示应用程序的窗口、控件、消息处理等各个方面。
2. MFC提供了一组丰富的类和函数库,用于快速构建各种窗
口和控件。
通过继承和复用MFC提供的基础类,开发者可以
很轻松地创建自己的应用程序。
3. MFC使用了消息机制处理用户输入和操作系统事件。
当用
户在应用程序中进行操作时(如点击按钮、键盘输入等),系统会生成相应的消息,MFC会根据消息类型和目标窗口的消
息映射表来调用相应的消息处理函数。
4. MFC以响应式编程的形式工作,即通过处理不同的消息来
响应用户的操作。
开发者可以重写或扩展MFC提供的默认消
息处理函数,以实现自定义的应用逻辑。
5. MFC还提供了一些其他功能,如多线程支持、数据库连接、文件操作等。
开发者可以利用这些功能来开发更加复杂和完善的应用程序。
总之,MFC通过提供一套面向对象的框架和一系列工具类,
帮助开发者快速构建Windows图形界面应用程序。
它通过消息机制来处理用户操作,通过类的继承和复用来提高代码的可维护性和可扩展性。
MFC编程基础教程MFC(Microsoft Foundation Classes)是一套基于C++的应用程序框架,用于开发可视化的Windows应用程序。
MFC提供了丰富的工具和类库,使程序开发人员能够更加轻松地创建Windows应用程序。
一、MFC框架的介绍MFC是一种C++编程框架,用于开发Windows应用程序。
MFC提供了一系列的类和方法,用于处理窗口、消息处理、资源管理等常见的任务。
MFC框架的核心是一个称为CWinApp的类,它是应用程序的入口点。
二、MFC的基本概念1.窗口:MFC使用窗口来显示应用程序的用户界面。
窗口可以是主窗口、对话框、工具栏、菜单等。
2.消息处理函数:MFC使用消息机制来处理用户输入和系统事件。
消息处理函数是在收到特定的消息时执行的代码块。
3.控件:控件是用于用户交互的窗口元素,例如按钮、文本框、列表框等。
4.对象模型:MFC使用面向对象的概念来管理窗口和控件。
每个窗口或控件都是一个C++对象,有自己的属性和方法。
三、MFC应用程序的创建1.创建一个MFC应用程序的步骤:a. 新建项目:在Visual Studio中创建一个MFC应用程序项目。
c.编写代码:编写消息处理函数和其他代码,实现应用程序的功能。
d.编译和运行:编译项目并运行应用程序。
四、MFC消息处理1.应用程序的消息循环:MFC应用程序的消息循环负责接收和处理用户输入和系统事件。
2.消息映射表:消息映射表是一个用于将消息与消息处理函数关联的数据结构。
3.常见的消息类型:MFC提供了大量的消息类型,包括鼠标和键盘消息、窗口消息、菜单消息等。
五、MFC控件的使用1.控件的创建和操作:使用MFC提供的类和方法来创建和操作控件。
2.控件的属性设置:通过设置控件的属性来改变它的外观和行为。
3.控件事件的处理:通过处理控件的事件来响应用户的操作。
六、MFC对话框的使用2.对话框控件的操作:对话框中的控件可以像其他控件一样进行操作。
MFC使用教程范文MFC(Microsoft Foundation Classes)是微软的一套C++类库,用于开发Windows桌面应用程序。
本教程将向您介绍MFC的基本概念和使用方法。
一、MFC简介MFC是基于面向对象的设计思想,为开发Windows应用程序提供了一套强大的工具和框架。
它提供了诸如窗口、对话框、菜单等常见界面元素的类,并且封装了底层的Windows API,简化了程序的编写过程。
二、MFC应用程序的创建要创建一个MFC应用程序,您可以使用Visual Studio进行操作。
首先,打开Visual Studio,并选择“新建项目”,然后选择“MFC应用程序”模板。
在创建项目的向导中,您可以指定应用程序的名称、位置和其他选项。
接下来,您可以选择所需的特性和模板。
例如,如果需要创建一个对话框应用程序,则可以选择“对话框”模板。
创建完成后,Visual Studio将自动为您生成一个基本的MFC应用程序框架,包括一个主窗口、一个菜单栏、一个工具栏和一个状态栏。
三、MFC界面元素的创建和使用1. 窗口(CWnd类):MFC提供了多种窗口类,如CFrameWnd、CView 等,您可以根据需要选择合适的窗口类来创建窗口。
4. 菜单(CMenu类):MFC通过CMenu类来管理菜单。
您可以创建菜单项并将其添加到菜单中,然后将菜单与窗口相关联。
5. 工具栏(CToolBar类):工具栏是一种常见的界面元素,用于提供快速访问常用命令的按钮。
您可以通过CToolBar类创建和管理工具栏,并将其与窗口相关联。
四、MFC消息机制在MFC中,程序通过消息来进行事件处理。
消息是由操作系统发送给应用程序的,应用程序通过重载消息响应函数来处理不同类型的消息。
在MFC中,您可以通过添加消息映射宏(BEGIN_MESSAGE_MAP和END_MESSAGE_MAP)和消息处理函数(OnXxx系列函数)来处理消息。
mfc 教程MFC(Microsoft Foundation Classes)是一种用于开发Windows应用程序的C++框架,由Microsoft推出。
它提供了一系列的类和函数,简化了Windows编程的复杂性,使开发人员可以更轻松地创建各种功能强大且交互性良好的应用程序。
MFC教程的目的是帮助初学者了解MFC的基本概念和使用方法,以便能够利用MFC框架开发自己的Windows应用程序。
本教程将介绍MFC的主要组成部分、常用类以及一些常见的编程技巧,帮助读者快速上手。
第一部分将介绍MFC的基本概念和架构。
我们将了解MFC是如何工作的,包括应用程序对象、文档/视图体系结构和消息映射等主要概念。
我们还将学习如何创建一个简单的MFC应用程序,并进行窗口的创建和管理。
第二部分将深入介绍MFC的常用类。
我们将重点介绍窗口类和控件类,包括CWnd、CFrameWnd、CDialog、CButton等。
我们将学习如何使用这些类创建窗口、控件,并处理用户输入事件。
我们还将讨论一些常见的绘图和动画技术,如GDI绘图和使用定时器实现动画效果。
第三部分将介绍MFC的高级特性和编程技巧。
我们将学习如何使用MFC的文档/视图体系结构创建多文档应用程序,并进行文档的管理和视图的同步更新。
我们还将介绍如何通过自定义类和重载消息处理函数来实现定制化的功能。
此外,我们还将讨论一些高级主题,如线程编程和网络编程。
最后,本教程还将介绍一些常见的MFC开发工具和资源。
我们将介绍MFC的IDE(集成开发环境)和调试工具,并提供一些常用的网站和论坛供读者进一步学习和交流。
总结起来,本教程将帮助读者掌握MFC的基本概念和编程技巧,并能够利用MFC框架开发自己的Windows应用程序。
我们将通过实例和演示代码来讲解,帮助读者理解和应用所学知识。
阅读本教程后,读者将具备一定的MFC编程基础,并能够进一步深入研究和应用MFC框架。
希望本教程能够对MFC初学者有所帮助,让他们更加轻松地学习和掌握MFC编程。
MFCMFC(Microsoft Foundation Classes),是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。
其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。
MFC:微软基础类(Microsoft Foundation Classes),同VCL类似,是一种应用程序框架,随微软Visual C++开发工具发布。
目前最新版本为10.0(截止2011年3月),并且发布了中文版。
该类库提供一组通用的可重用的类库供开发人员使用,大部分类均从CObject 直接或间接派生,只有少部分类例外。
MFC 应用程序的总体结构通常由开发人员从MFC类派生的几个类和一个CWinApp类对象(应用程序对象)组成。
MFC 提供了MFC AppWizard 自动生成框架。
Windows 应用程序中,MFC 的主包含文件为"Afxwin.h"。
此外MFC的部分类为MFC/ATL 通用,可以在Win32 应用程序中单独包含并使用这些类。
由于它的易用性,初学者常误认为VC++开发必须使用MFC,这种想法是错误的。
作为Application Framework,MFC的使用只能提高某些情况下的开发效率,只起到辅助作用,而不能替代整个Win32 程序设计。
特点MFC实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎。
VC++是Windows下开发人员使用的专业C++ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个辅助软件开发包。
MFC作为与VC++血肉相连的部分(注意C++和VC++的区别:C++是一种程序设计语言,是一种大家都承认的软件编制的通用规范;而VC++只是一个编译器,或者说是一种编译器+源程序编辑器的IDE(IDE的英文全称为“Integrated Development Environment”,即“集成开发环境”。
1.MFC概述1.MFC是一个编程框架MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。
因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。
Microsoft Visual C++提供了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。
1.封装构成MFC框架的是MFC类库。
MFC类库是C++类库。
这些类或者封装了Win32应用程序编程接口,或者封装了应用程序的概念,或者封装了OLE特性,或者封装了ODBC和DAO数据访问的功能,等等,分述如下。
(1)对Win32应用程序编程接口的封装用一个C++ Object来包装一个Windows Object。
例如:classCWnd是一个C++ window object,它把Windows window(HWND)和Windows window有关的API函数封装在C++ windowobject的成员函数内,后者的成员变量m_hWnd就是前者的窗口句柄。
(2)对应用程序概念的封装使用SDK编写Windows应用程序时,总要定义窗口过程,登记Windows Class,创建窗口,等等。
MFC把许多类似的处理封装起来,替程序员完成这些工作。
另外,MFC提出了以文档-视图为中心的编程模式,MFC类库封装了对它的支持。
文档是用户操作的数据对象,视图是数据操作的窗口,用户通过它处理、查看数据。
(3)对COM/OLE特性的封装OLE建立在COM模型之上,由于支持OLE的应用程序必须实现一系列的接口(Interface),因而相当繁琐。
MFC入门教程范文MFC(Microsoft Foundation Classes)是微软公司为Windows操作系统开发的一套C++类库,用于快速开发Windows应用程序的框架。
MFC 提供了丰富的类和函数,可以用来创建窗口、对话框、按钮等控件,并实现与用户的交互。
本文将为你介绍MFC的基本概念和一些常用的操作。
一、MFC的基本概念1. 窗口类(CWnd):MFC中的窗口类是所有控件和对话框的基类,它提供了创建和管理窗口的功能。
2. 控件类(CButton、CEdit等):MFC提供了各种控件类,用于创建和管理各种窗口控件,如按钮、文本框、列表框等。
3. 对话框类(CDialog):对话框是一种特殊的窗口,用于显示用户界面和处理用户输入。
MFC提供了对话框类,用于创建和管理对话框。
4. 消息映射(Message Map):MFC中的消息映射是一种将窗口消息与相应函数关联起来的机制。
通过消息映射,可以方便地处理各种用户输入事件,比如鼠标点击、键盘按键等。
二、MFC的基本操作1. 创建一个MFC应用程序:打开Visual Studio,选择"创建新项目",在向导中选择"MFC应用程序",填写项目名称和保存路径,点击"确定"完成创建。
在进行项目设置时,可以选择要使用的MFC版本和应用程序类型。
2. 创建窗口:在MFC应用程序中,可以使用CWnd类的Create函数来创建一个窗口。
首先定义一个CWnd对象,调用Create函数指定窗口样式、位置和大小等参数,最后调用ShowWindow函数显示窗口。
3. 创建控件:在MFC应用程序中,可以使用各种控件类来创建窗口控件。
首先定义一个控件类对象,调用Create函数指定控件样式、位置和大小等参数,最后调用ShowWindow函数显示控件。
4.处理消息:在MFC应用程序中,可以通过重写消息处理函数来处理各种用户输入事件。
初识MFC一、MFC的概念和作用1、什么是MFC?全称:Microsoft Foundation Class Library(微软基础类库)1-MFC从硬盘存在形式来说就是一个库(静态MFC库、动态MFC库)2-MFC从原理来说还是一个程序框架2、为什么使用MFC?基于框架编程,提高工作效率,减少开发周期,降低开发成本。
二、几个重要的头文件afx.h--包含了MFC中绝大部分类的声明afxwin.h--包含了afx.h和windows.hafxext.h--提供了对扩展类的支持,例如:工具栏、状态栏...附:以Afx...开头的函数,可以确定为MFC库中的一个全局函数;以::...开头的函数,可以确定为Win32的API函数;三、MFC应用程序的分类1、使用MFC库制作自己的控制台程序相比Win32控制台程序:多了一个全局对象 CWinApp theApp入口函数不同于以往的入口函数2、使用MFC库制作自己的静态库程序3、使用MFC库制作自己的动态库程序1--使用MFC库制作自己的规则动态库(静/动态MFC库)2--使用MFC库制作自己的扩展动态库区别:规则库可以被所有程序调用,扩展库只能被支持MFC的程序调用4、使用MFC库制作自己的窗口程序1--单文档视图构架程序CFrameWnd-框架窗口类,封装了关于框架窗口的操作CWinApp-应用程序类,封装了关于程序流程的操作CDocument-文档类,封装了关于数据的操作(提取、转换、存储...)CView-视图窗口类,封装了关于视图窗口的操作(绘图)2--多文档视图构架程序CMDIChildWnd-子框架窗口类,封装了关于子框架窗口的操作CMDIFrameWnd-主框架窗口类,封装了关于主框架窗口的操作CWinApp-应用程序类,封装了关于程序流程的操作CDocument-文档类,封装了关于数据的操作(提取、转换、存储...)CView-视图窗口类,封装了关于视图窗口的操作(绘图)3--对话框构架程序CWinApp-应用程序类,封装了关于程序流程的操作CDialog-对话框窗口类,封装了关于对话框窗口的操作四、MFC库中类的概述1、CObject-MFC库中绝大部分类的最基类封装MFC库中最基本的几个机制:运行时类信息机制、动态创建机制、序列化机制2、CCmdTarget-消息映射机制的最基类3、CWinThread/CWinApp-应用程序类,负责管理程序的流程4、CDocument及其子类-文档类,负责管理数据5、Exceptions-异常类,封装了关于MFC中各种异常情况的处理6、CFile及其子类-文件操作类,封装了关于各种文件的操作7、CWnd-窗口类的最基类,封装了关于窗口的最基本的操作8、Frame Windows-框架窗口类,封装了关于各种框架窗口的操作9、Dialog Boxes-对话框窗口类,封装了关于各种对话框窗口的操作10、Views-视图窗口类,封装了关于各种视图窗口的操作11、Controls-控件窗口类,封装了关于各种控件窗口的操作12、CDC及其子类-封装了各种绘图设备,以及绘图函数13、CGdiObject及其子类-封装了各种绘图对象的操作14、CArrary/CList/CMap及其子类-封装了C++中相应的数据结构15、非CObject类-封装了关于各种结构的操作例如:CPoint,CRect,CString,CTime...五、MFC的类向导功能(ClassWizard)在VC6的菜单栏->查看->建立类向导(Ctrl+W)1、Message Maps选项卡①Project:下拉列表框给出当前工程名称。
VC6.0开发环境 开发环境1 开发环境工 作 空 间2010-08-3021VC6.0开发环境 开发环境2 开发环境类视图 ClassView 资源视图 ResourceView 文件视图 FileView2010-08-3022程序结构About对话框类 About对话框类 主框架类 应用程序类 文档类视图类2010-08-30 23资源结构2010-08-30242010-08-3025的框架上自由发挥。
在MFC的框架上自由发挥。
的框架上自由发挥利用MFC AppWizard[exe]向导创建应用程序 利用 向导创建应用程序 MyApp的框架后,用户无需添加任何代码, 的框架后, 的框架后 用户无需添加任何代码, 就可以对程序进行编译、链接, 就可以对程序进行编译、链接,生成一个应用 程序。
但一般情况下, 程序。
但一般情况下,用户应根据程序具体功 能需要,利用Developer Studio中的集成工 能需要,利用 中的集成工 具向应用程序框架添加具体的代码站在巨人的肩膀上摘星星…2010-08-30262010-08-3027编写一个实现具体功能的MFC应用程序的步骤 编写一个实现具体功能的 应用程序的步骤根据应用程序特性在MFC AppWizard[exe]应用程序向导 根据应用程序特性在 应用程序向导 各步骤对话框中进行选择,创建一个应用程序的框架。
各步骤对话框中进行选择,创建一个应用程序的框架。
利用资源编辑器为程序编辑或添加资源,如编辑菜单、 利用资源编辑器为程序编辑或添加资源,如编辑菜单、添 资源编辑器为程序编辑或添加资源 加对话框等。
加对话框等。
利用ClassWizard类向导或手工添加类、 成员变量和成员 类向导或手工添加类、 利用 类向导或手工添加类 函数的声明。
函数的声明。
根据需要编写具体的函数代码。
根据需要编写具体的函数代码。
编译、链接程序。
如果程序有语法错误,需要修改源程序。
MFC框架的介绍与应用MFC(Microsoft Foundation Class)是一种基于C++的编程框架,用于开发Windows应用程序。
该框架是微软推出的一种基于消息机制的图形用户界面(GUI)框架,旨在简化Windows应用程序开发的复杂度。
下面将介绍MFC框架的基本组成和应用。
一、MFC框架的基本组成MFC框架由多个类库组成,包括应用框架、控件库、GDI(图形设备接口)和基础设施库等。
其中,应用框架是构成整个应用程序的基础,控件库提供了大量可视化元素,GDI和基础设施库则为开发人员提供了强大的图形处理能力。
1. 应用框架应用框架是MFC框架的核心,包括了窗口管理、消息处理、应用程序生命周期等一系列功能。
在应用程序开发过程中,开发人员需要继承CWinApp类,该类提供了应用程序的生命周期管理、初始化、清理等操作,使应用程序能够顺利运行。
2. 控件库控件库是MFC框架中最为重要的组件之一,提供了丰富的可视化元素,如按钮、文本框、标签等等。
开发人员可以在应用程序中使用这些控件,实现丰富的用户界面交互。
同时,控件库还提供了许多高级控件,例如Tree Control、List Control等,支持各种不同的交互方式,大大增强了用户的操作体验。
3. GDIGDI是图形设备接口,是MFC框架中最为重要的图形处理组件。
它提供了许多图形操作API,支持诸如绘制、渲染等操作,还支持丰富的图像格式转换、裁剪等操作。
开发人员可以使用GDI轻松操作图形,实现各种复杂的图形效果。
4. 基础设施库基础设施库是MFC框架中提供的帮助开发人员快速开发业务处理的组件,例如数据库操作、网络通信、多线程编程等。
它提供了各种常用的工具类和函数,帮助开发人员编写高效、易维护的代码。
二、MFC框架的应用MFC框架的应用范围广泛,可以用于开发许多不同类型的软件,例如桌面应用程序、图形处理软件、嵌入式软件等。
下面将以桌面应用程序为例,介绍MFC框架的应用实例。
MFC入门教程范文MFC(Microsoft Foundation Class)是微软公司为Windows操作系统开发的一套面向对象的图形用户界面(GUI)应用程序框架。
作为Windows开发的主要框架之一,MFC提供了丰富的类库和工具,可以帮助开发者快速高效地创建Windows应用程序。
本文将介绍MFC的基本概念、开发环境和入门教程,以帮助读者快速上手MFC开发。
一、MFC基本概念1.1MFC的定义和特点MFC是一个面向对象的框架,以C++语言编写,提供了一套丰富的类库和工具,用于开发Windows应用程序。
MFC包含了大量的封装类,可以帮助开发者简化Windows API的调用,提高开发效率。
MFC的优点包括:提供了图形用户界面的开发工具和控件,简化了用户界面的设计和开发;封装了常用的Windows API,提供了更高层次的抽象;提供了方便的数据操作和管理机制,支持数据库访问和数据绑定等功能。
1.2MFC的组成和架构MFC的核心类库包含在afxwin.h头文件中,其中包括了CObject、CWnd、CWinApp等基础类。
MFC的应用程序通常由一个派生自CWinApp类的应用程序对象和一个或多个派生自CWnd类的窗口对象组成。
1.3MFC的开发环境和工具二、MFC开发入门教程2.1创建一个MFC应用程序首先打开Visual Studio,选择File->New->Project。
在弹出的对话框中选择Visual C++->MFC,然后选择MFC Application作为项目类型。
在下一步中,可以选择应用程序的名称、位置和其他选项。
点击Finish按钮即可完成项目的创建。
2.2设计用户界面创建完成后,会自动为我们生成一个基本的窗口界面。
在资源视图中,可以看到应用程序的资源文件,包括窗口的图标、菜单等。
可以使用可视化设计工具对界面进行设计。
例如,可以通过拖拽按钮控件到窗口上,在属性窗口中修改按钮的文字、大小等属性。
MFC(Microsoft Foundation Class,微软基础类库)是微软为了简化程序员的开发工作所开发的一套C++类的集合,是一套面向对象的函数库,以类的方式提供给用户使用。
利用这些类,可以有效地帮助程序员完成Windows应用程序的开发。
1.MFC AppWizardMFC AppWizard是一个辅助我们生成源代码的向导工具,它可以帮助我们自动生成基于MFC框架的源代码。
该向导的每一个步骤中,我们都可以根据需要来选择各种特性,从而实现定制应用程序。
下面我们就利用MFC AppWizard来创建一个基于MFC的单文档界面(SDI)应用程序。
(还可以创建多文档、对话框的应用程序,自己学习做后面的练习)启动Microsoft Visual C++6.0,单击【File】菜单,选择【New】,在Projects选项卡下,选择MFC AppWizard(exe),在右侧的【Project name】文本框中,输入我们的工程名:Test,如图3.1所示。
图3.1 New对话框单击【OK】按钮,出现MFC AppWizard-Step 1对话框,选择Single do cument选项,如图3.2所示。
单击【Next】按钮,出现MFC AppWizard-Step 2 of 6对话框,保持默认选择,如图3.3所示。
图3.2 MFC AppWizard - Step 1对话框图3.3 MFC AppWizard - Step 2 of 6对话框单击【Next】按钮,出现MFC AppWizard-Step 3 of 6对话框,保持默认选择,如图3.4所示。
单击【Next】按钮,出现MFC AppWizard-Step 4 of 6对话框,保持默认选择,如图3.5所示。
图3.4 MFC AppWizard - Step 3 of 6对话框图3.5 MFC AppWizard - Step 4 of 6对话框单击【Next】按钮,出现MFC AppWizard-Step 5 of 6对话框,保持默认选择,如图3.6所示。
MFC基本介绍MFC的类层次结构:如上图所⽰:CObject:是MFC提供的绝⼤多数类的基类。
该类完成动态空间的分配与回收,⽀持⼀般的诊断、出错信息处理和⽂档序列化等。
CCmdTarget:主要负责将系统事件(消息)和窗⼝事件(消息),发送给响应这些事件的对象,完成消息发送、等待和派遣调度等⼯作,实现应⽤程序的对象之间协调运⾏。
CWinApp:是应⽤程序的主线程类,它是从CWinThread类派⽣⽽来的。
CWinThread类⽤来完成对线程的控制,包括线程的创建、运⾏、终⽌和挂起等。
CDocument:是⽂档类,包含了应⽤程序运⾏期间所⽤到的数据。
CWnd:是⼀个通⽤的窗⼝类,⽤来提供Windows中的所有通⽤特性、对话框和控件。
⼀个MFC程序,必须包含⼀个派⽣⾃CWinApp的线程类,即C*App类,每⼀个MFC框架程序中都有且只有⼀个C*App的全局变量(对象)即theApp。
MFC正是利⽤类的这种"⾃动调⽤相应的构造函数"特性,使得WinMain()函数的调⽤变成了应⽤程序框架内部的调⽤,所以我们在代码中看不到每个Windows程序所必须有的WinMain()函数。
C++规定,全局对象的构建将⽐程序进⼊点(在dos环境下为main,在Windows环境为WinMain)更早。
所以theApp的构造函数将更早与main。
C++中⼦类的构造函数执⾏在⽗类之后。
系统执⾏theApp的够造函数时,先调⽤基类(CObject-->....CWinApp)的构造函数,进⾏⼀系列的内部初始化操作,然后⾃动调⽤C*App的虚函数InitInstance(),该函数会进⼀步调⽤相应的函数来完成主窗⼝的构造和显⽰⼯作。
下⾯来看看上述程序中InitInstance的执⾏过程。
⾸先执⾏的是:m_pMainWnd = new CMainFrame;该语句⽤来创建从CFrameWnd类派⽣⽽来的⽤户框架窗⼝CMainFrame类对象,继⽽调⽤该类的构造函数,使得Create函数被调⽤,完成了窗⼝创建⼯作。