1、MFC(Microsoft Foundation Class 微软基本类库)
(1)每一个MFC程序有且仅有一个从应用程序类(CWinApp)派生的类,每一个MFC程序实例有且仅有一个该派生类的实例化对象。
(2)Afx前缀的函数代表应用程序框架函数。在MFC中为全局函数,可以在程序的任何地方调用。
WinMain—> AfxWinMain(WINMAIN.CPP里包括该函数的定义)
AfxGetThread(THRDCORE.CPP)
AfxGetApp(AFXWIN1.INL)
CMainFrame::PreCreateWindow—>CFrameWnd::PreCreateWindow(WINFRM.CPP)
CMainApp派生于CWinThread类
CFrameWnd派生于CWnd类
窗口创建功能是由CWnd类的CreateEx(声明AFXWin.h,定义WINCORE.CPP)函数实现的。
CFrameWnd类的LoadFrame函数调用CFrameWnd的Create(声明AFXWin.h,定义WINCORE.CPP)函数,Create函数内部调用CWnd的CreateEx函数
消息循环
CWinThread类Run函数完成
AfxWinMain函数中调用Run函数(定义THRDCODE.CPP)
2、窗口类,窗口类对象,窗口
联系:c++窗口类对象内部定义一个窗口句柄变量,保存了与这个c++窗口类对象相关的那 个窗口句柄。
区别:窗口销毁,对应的窗口类对象销毁与否关键看其生命周期是否结束。
窗口类对象销毁,与之对应的窗口也销毁。
3、视类窗口与框架窗口。
框架窗口:菜单栏、标题栏都位于非客户区
工具栏位于客户区。显示的按钮会占领工具栏的地方。
视类窗口:显示的按钮会直接在客户区,不会占领非客户区的地方。
本文转自 韬光星夜 51CTO博客,原文链接:http://blog.51cto.com/xfqxj/476987,如需转载请自行联系原作者