关闭

深浅MFC学习笔记总结-MFC程序的执行过程

标签: mfcc
2384人阅读 评论(1) 收藏 举报
分类:

MFC程序的执行过程

  首先产生全局的对象theApp(任何一个mfc程序都会产生这样一个对象)

2     进入到 int  AFXAPI afxWinMain(…)这个函数中。

3      进入到 AfxWinInit)。

SDK程序WinMain函数的四个参数HINSTANCE hInstance,HINSTANCE hPrevInstance ,LPSTR lpCmdLineCwinApp中都是成员变量,在这一步,将afxWinMain传进来的这些参数值赋给theApp对应的成员变量。

4     pApp->InitApplication()   调用的是CwinApp:: InitApplication()。该函数在C**WinApp中并未被改写。

5     pApp->InitInstance()。调用的是C**WinApp:: InitInstance()。该函数被改写了。

6  第5步中new C**FrameWnd,引发C**FrameWnd的构造函数。

7   执行C**FrameWnd的构造函数中的Create函数。调用的是CFrameWnd::Create函数。

 CWnd::CreateEx() 。该函数中定义了cs结构(cs可以在下一步中修改)。产生窗口,得到窗口句柄hWnd

 CFrameWnd::PreCreateWindow CREATESTRUCT & cs)。不同类的PreCreateWindow成员函数都是在窗口产生之前一刻被调用,准备用来注册窗口类。可以这样理解,在mfc为我们注册窗口类之前,预留了这个接口,我们只要在PreCreateWindow修改cs中的数据,就可以产生我们期望的窗口属性。

10  注册该窗口.

11  回到第5步中,显示窗口。

12  pApp->Run  调用CwinApp::RunCwinApp::Run中又调用了CwinTheard::Run()。该函数维护消息队列中的消息循环,发送消息到AfxWndProc。下面就是Message Map的事了

 

                                                     -- 对应第六章 MFC程序的生死因果

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:73555次
    • 积分:950
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:8篇
    • 译文:6篇
    • 评论:8条
    最新评论
    我的链接