首先有个全局变量,CMyApp app;为了确定执行顺序,必须有一个入口,这里的入口时_tWinMain,这里微软很人性化的不需要我们写这个函数,而是在link的时候直接添加到应用程序代码中
_tWinMain调用了AfxWinMain()
AfxWinMain的主要部分
{
CWinApp *pApp=AfxGetApp();
AfxWinInit();/*
这个函数将hInstance,lpCmdLine等WinMain的参数付给了唯一的CWinApp全局对象;
然后调用了AfxInitThread();AfxInitThread函数利用钩子函数将消息映射机制引入MFC 的Message
Map中AfxGetThreadState()函数用来获得当前进程的Thread State,如果当前的线程还没有Thread
State,该函数会创建一个新的Thread State*/
pApp->InitApplication();//这里做的是DOC/VIEW的管理,这里不详解
pApp->InitInstance();//在这里展开我们主窗口的生命 /*这里进行了窗口的注册*/
pApp->Run();//Run函数内开始GetMessage,TranslateMessage,DispatchMessage消息,消息发往窗口类注册时候设置的proc函数DefWindowProc
}
在InitApplication()中new了一个CMyFrameWnd对象并显示。窗口的产生在这个CMyFrameWnd对象中,这里不具体深究。需要的时候再了