当前位置:C++技术网 > 资讯 > MFC框架封装底层代码详细解析续2

MFC框架封装底层代码详细解析续2

更新时间:2015-12-01 21:16:08浏览次数:1+次

按照Win32程序编写步骤,设计窗口类并注册窗口类之后,应该是创建窗口了。在MFC程序中,窗口的创建功能是由CWnd类的CreateEx函数实现的,该函数的声明位于AFXWin.h中,具体的代码如下所示:

按照Win32程序编写步骤,设计窗口类并注册窗口类之后,应该是创建窗口了。在MFC程序中,窗口的创建功能是由CWnd类的CreateEx函数实现的,该函数的声明位于AFXWin.h中,具体的代码如下所示:

CFrameWnd类派生与CWnd类。由上述代码可知,CWnd类的CreateEx函数不是虚函数。另外,CFrameWnd类中也没用重写这个函数。根据类的继承性原理,CFrameWnd类就继承了CWnd类的CreateEx函数,因此,CFrameWnd类的Create函数内部调用的实际上就是CWnd类的CreateEx函数。
在MFC应用程序类(App类)的中有一个名为m_pMainWnd的成员变量。改变了是一个CWnd类型的指针,它保存了应用程序框架窗口对象的指针。也就是CMianFrame对象的指针。在应用程序类的InitInstance函数实现内部有如下两句代码:

消息循环是MFC程序的重点,CWinThread类的Run函数就是完成消息循环这一任务的,该函数是在A分享WinMain函数中的调用的,调用形式如下:
pThread->Run();
你可以在上面的AfxWinMian函数实现代码中看到。
CWinThread类的Run函数的定义位于THRDCORE.CPP文件中,代码如下:

该函数的主要结构是一个for循环,该循环在接收到一个WM_QUIT消息时退出。在此函数中调用一个PumpMessage函数,该函数的部分定义代码如下: