天天看点

MFC框架程序剖析

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,如需转载请自行联系原作者

上一篇: ansible小技巧
下一篇: 文本编辑

继续阅读