dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | flex | CRM | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>C/C++>文章内容
关于MFC内部结构实用的一点看法
来源: VCKBASE 作者: 章志强 <
  我们在编写或是在看MFC类的书籍的时候,总会看到书上让我们在某个地方添加某某函数,响应什么消息。那么,到底为什么要在这地方加呢?为什么不能在其他地方添加消息响应函数呢?

  接下来,我们就共同来讨论一下吧。

  1.MFC的运行步骤:(这是对于文档视图结构的应用程序的)

theApp(theApp())->//应用程序全局对象的构造和分配
WinMain()->//进入主函数
AfxWinMain()->//调用API
InitAplacation()(应用程序的内部管理)->//用于应用程序的内部管理的初始化
Initinstance()(theApp)->//初始化应用程序对象
应用程序的Initinstance()->//应用程序的初始化(创建和注册窗口类、显示和更新应用程序框架)
注册窗口类->
AfxEndDeferRegisterClass ()(该函数根据不同的应用程序注册不同的窗口类)->
AfxRegisterClass()->
CMainFrame::PreCreateWindow()->
CFrameWnd::PreCreateWindow()->
AfxDeferRegisterClass()(如果没有注册,就注册窗口类;它实际上是AfxEndRegisterClass()的宏)(一般都是在这里注册窗口类,由于文档窗口涉及到文档视图类的管理)->
LoadFrame()->//载入框架
CFrameWnd::Create()->/
CWnd::CreateEx()->//创建应用程序窗口
CMainFrame::PreCreateWindow()(实际上该函数是一个虚函数,也就是说如果子类为应用程序定义了该函数,那么它将调用子类的函数,因此,我们可以重载该函数来修改应用程序框架的外观)->//在框架窗口显示之前调用
ShowWindow()->UpdateWindow()->//显示和更新
消息循环:->
CwinThread::Run()->
do-while()循环(->PumpMessage()->GetMessage()->TranslateMessage()->DispatchMessage())

  简单的说就是初始化全局对象进入主函数再进行窗口类的创建和注册并显示,然后进入消息循环。

  theApp:全局变量或是类对象在程序运行前初始化。即分配内存空间,初始成员。(每一个MFC应用程序都只有一个全局对象theApp对象,我们用该全局对象唯一的表示该应用程序。)

共2页。 1 :

上一篇:用MFC的消息映像实现动态菜单   下一篇:Visual C++视频教程:第一课 G
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·C语言学习
·C语言指针
·C语言数组排序小结
·c语言 最简单的推箱子游戏
·c语言 全国计算机编程大赛复赛试
·c语言 全国计算机编程大赛复赛试
·c++ 数组与指针
·C++中的内存管理(new、delete、
·如何用C语言开发DSP嵌入式系统
·如何用C语言开发DSP嵌入式系统
·Linux下C语言编程
·学习arm的话先看哪本书?
  相关文章
·用MFC的消息映像实现动态菜单
·Visual C++视频教程:第一课 G
·VC++与MATLAB混合编程及其应用
·Visual C++视频教程:第一课 H
·用Windows消息循环实现消息延迟
·Visual C++视频教程:第二课 A-2
·VC++实现计算机并口的数据采集
·Visual C++视频教程:第二课 B
·Visual C++视频教程:第一课 F
·转:从VC++到GCC移植:谈两者语
·Visual C++视频教程:第一课 E
·在Delphi编程中使用C语言代码
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763