1.首先利用全局应用程序对象theApp启动应用程序。正式产生这个全局对象,基类CWinApp中的this指针才能指向这个对象。如果没有这个全局对象,程序在编译时不会出错,但在运行时会出错。
2.调用全局应用程序对象的构造函数,从而就会先调用其基类CWinApp的构造函数。后者完成应用程序的一些初始化工作,并将应用程序对象的指针保存起来。
3.进入WinMain函数。在AfxWinMain函数中可以获取子类(对Test程序来说,就是CTestApp类)的指针利用此指针调用虚函数:InitInstance函数,根据多态性原理,实际上调用的是子类(CTestApp)的InitInstance函数。后者完成应用程序的一些初始化工作,包括窗口类的注册,创建,窗口的显示和更新。期间会多次调用CreatEx函数,因为一个单文档MFC应用程序有多个窗口,包括框架窗口﹑工具条,状态条等。
4.进入消息循环。虽然也设置了默认的窗口过程函数,但是,MFC应用程序实际上是采用消息映射机制来处理各种消息的。当收到WM_QUIT消息时,推退消息循环,程序结束。