《深入浅出MFC》学习笔记之二(4) END_MESSAGE_MAP() 来龙去脉总整理 程序的诞生 Application object 产生, 内存于是获得配置,初值亦设立了。 AfxWinMain执行AfxWinInit,后者又调有AfxInitThread,把消息队列尽量加 大到96 AfxWinMain执行InitApplication。这是CWinApp的虚拟函数,我们通常不改写它 AfxWinMain执行InitInstance。这是CWinApp的虚拟函数,我们必须改写它 CMyWinApp::InitInstance “new”了一个CMyFrameWnd对象 CmyFrameWnd构造函数调用Create,产生主窗口。我们在Create参数中指定的窗口类是NULL,于是MFC根据窗口种类,自行为我们注册一个名为“AfxFrameOrView42d”的窗口类。
回到InitInstance中继续执行ShowWindow,显示窗口 执行UpdateWindow,于是发出WM-PAINT 回到AfxWinMain,执行Run,进入消息循环。 程序开始运行: 程序获得WM-PAINT消息(由CWinApp::Run中的::GetMessage循环) WM-PAINT经由::DispatchMessage送到窗口函数CWnd::DefWindowProc中。