MFC框架下的程序设计

1、首先解释一下:MFC(Microsoft Foundation class):微软基础类库。

2、MFC AppWizard(wizard:向导范例的意思)顾名思义就是程序设计向导

我们新建工程选择MFC AppWizard,就会建好一个vs已经为我们初始化好的窗口界面,可以快速提高程序员的开发速度。但是与《上篇VC++深入详解20101215》提到的函数有不同的地方

1、WinMain函数在哪里?

MFC是人家自己开发的,所以肯定有其调用机制,这里是调用的appmodul.cpp中的_tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, _In_ LPTSTR lpCmdLine, int nCmdShow),而_tWinMain在tchar.h中早就定义了,是一个宏:#define _tWinMain   WinMain,所以人家是有WinMain函数的,是有入口函数的,只是预处理后才可以看得到。WinMain函数实际上是通过调用AfxWinMain函数(在winmain.cpp)来完成它的功能的(Afx前缀的函数代表应用程序框架函数,在MFC中,以Afx为前缀的函数都是全局函数,可以在程序的任何地方调用它们)。

2、如何初始化的?

这里是通过函数的初始化机制来完成的,我们以孙鑫的chapter3中的Test函数为例,那么其中首先运行的是Test.cpp中的CTestApp theApp,即先初始化全局变量(这里需要注意的是类CTestApp只设置一个对象:theApp,因为正如他的名字,用来标示这个应用程序本身。)CTestApp继承自CWinApp(见Test.h中class CTestApp : public CWinApp),如果想初始化子类,必须先初始化父类,所以先初始化CWinApp,先调用它的构造函数,从而就把我们程序自己创建的类(CTestApp)与Microsoft提供的基类(CWinApp)关联起来了,由CWinApp的构造函数完成程序运行时的一些初始化工作。它的初始化函数在哪里呢?这:appcore.cpp:CWinApp::CWinApp(LPCTSTR lpszAppName)


====================

感觉自己当时写的乱七八糟呢,呵呵。


创建一个SDI应用程序时,程序的操作主要归结为4个步骤:

(1)创建应用程序对象 theapp;全局变量中创建

(2)执行MFC提供的WinMain()函数;

(3)WinMain()调用InitInstance()函数,此函数创建文档模板、主框架窗口、文档和视图;

(4)WinMain()调用Run()函数,此函数执行主消息循环,以获取和分派Windows消息。Run()函数获取所有以该应用程序为目的地的Windows消息,并确保把每一条消息都传递给程序中指定的服务该消息的函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值