频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

关于MFC内部结构实用的一点看法

来源:VCKBASE 作者:章志强 出处:巧巧读书 2007-01-18 进入讨论组
下一页 1 2 

  我们在编写程序或是在看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对象,我们用该全局对象唯一的表示该应用程序。)巧 巧 读 书:http://www.qqread.com/vc/d293900.html进入讨论组讨论。
下一页 1 2 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章