VC++学习笔记之MFC应用程序创建/执行顺序和MFC运行机制

1、Win32应用程序创建:进入WinMain函数、设计窗口类、注册窗口类、产生窗口、注册窗口、显示窗口、更新窗口,进入消息循环,将消息路由到窗口过程函数中。
2、WinMain函数的执行(AfxWinMain函数):当程序调用了CWinApp类的构造函数,并执行了CTestApp类的构造函数,且产生了theApp对象之后,接下来就进入WinMain函数。WinMain函数实际上是通过调用AfxWinMain函

数来完成它的功能的。
3、窗口初始化(InitInstance函数):窗口初始化。
4、设计和注册窗口(AfxEndDeferRegisterClass函数和AfxRegisterClass函数):有了WinMain函数就应该设计和注册窗口了。
5、创建窗口(CreateEx函数):该函数位于AFXWin.h文件中。
6、显示窗口和更新窗口(ShowWindow方法和UpdateWindow方法):这两个方法位于App类的InitInstance函数。
7、消息循环(CWinThread类的Run函数):该函数在AfxWinMain函数中调用。pThread->Run();
8、窗口过程函数:wndcls.lpfnWndProc=DefWindowProc;
通过1~8总结一下MFC运行机制:
1、利用全局应用程序对象theApp启动应用程序。产生全局对象,使之可以使用this指针。
2、调用全局对象的构造函数,其实先调用的是基类的构造函数,完成一些初始化工作,并将应用程序对象的指针保存起来。
3、进入WinMain函数。通过AfxWinMain函数获取子类指针,调用虚函数:InitInstance。在“InitInstance”函数中,完成应用程序的一些初始化工作,包括窗口的注册、创建、显示和更新。
4、进入消息循环。虽然设置了默认的窗口过程函数,但是MFC应用程序实际上采用消息映射机制来处理各种消息的。当收到WM_QUIT消息时,退出消息循环,程序结束。

朋友,如果您有什么真知灼见,可以加“新浪微博”/MSN哦,starrycheng@live.com,我们大家一起讨论,一起研究。

最后,帮忙加一分吧,想整个空间系统。

原文地址:https://www.cnblogs.com/ssol/p/2258936.html