VC++剖析之MFC程序执行流程

来源:互联网 发布:阿里云 华东 华南 华北 编辑:程序博客网 时间:2024/04/23 14:09
1 每个MFC应用程序都包含如下6个部分:

从CWinApp派生一个新类作为该应用程序的程序类,这个类应该重载InitInstance()函数

将该应用程序类声明为全局变量,CWinApp的构造函数将自动调用InitInstance()函数

从CFrameWnd(或CMDIFrameWnd或CMINIFrameWnd)派生一个类作为屏幕上的主窗口

创建该窗口的InitInstance()函数

创建该窗口的构造函数

创建该窗口的析构函数



2 MFC程序的运行和启动过程,依次执行下面几个步骤,这些步骤在MFC程序运行的时候都是自动完成的,编程被屏蔽在外面:



应用程序对象产生(theApp),配置内存,设定初值。

调用AfxWinMain()函数,执行AfxWinInit()函数,后者又调用AfxInitThread()函数,把消息队列尽量加大到96

AfxWinMain()函数执行InitApplication()函数

AfxWinMain()函数执行InitInstance()函数,它是CWinApp的虚函数,必须重载并修改它

InitInstance()函数创建了一个CMyFrameWnd对象

CFrameWnd构造函数调用Create()函数,产生主窗口,在生成窗口前,Create()函数注册有关窗口类

回到InitInstance()函数中继续执行ShowWindow()函数显示窗口

执行UpdateWindow()函数,发出WM_PAINT消息

回到AfxWinMain()函数,执行Run()函数,进入消息循环



--
原创粉丝点击