开发者社区> 技术小阿哥> 正文

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
+关注
技术小阿哥
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
小程序 大世界
立即下载
15分钟打造你自己的小程序
立即下载
《15分钟打造你自己的小程序》
立即下载