`
逆风的香1314
  • 浏览: 1389378 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MFC程序的来龙去脉

MFC 
阅读更多

程序的诞生<o:p></o:p>

#Application Object产生,内存于是获得配置,初值亦设立完成。<o:p></o:p>

#AfxWinMain执行AfxWinInit,后者又调用AfxInitThread,把消息队列尽量加大。<o:p></o:p>

#AfxWinMain执行InitApplication。这是CwinApp的虚函数,但我们通常不改写它。<o:p></o:p>

#AfxWinMain执行InitInstance.这是CwinApp的虚函数,我们必须改写。<o:p></o:p>

#CMyWinApp::InitInstance 'new'了一个CMyFrameWnd对象。<o:p></o:p>

#CMyFrameWnd构造函数调用Create,产生主窗口。我们在Create参数中指定的窗口类是NULL,于是MFC根据窗口种类,自行为我们注册一个名为"AfxFrameOrView42d"的窗口类。<o:p></o:p>

#回到InitInstance中继续执行ShowWindow,显示窗口。<o:p></o:p>

#执行UpDateWindow,于是发出WM_PAINT.<o:p></o:p>

#回到AfxWinMain,执行Run,进入消息循环。<o:p></o:p>

<o:p></o:p>

程序开始运行<o:p></o:p>

#程序获得WM_PAINT消息(经由CwinApp::Run中的::GetMessage循环)。<o:p></o:p>

#WM_PAINT经由::DispatchMessage送到窗口函数CWnd::DefWindowProc中。<o:p></o:p>

#CWnd::DefWindowProc将消息传递给消息映射表格(Message Map)<o:p></o:p>

#传递过程中发现有相符项目,于是调用项目中对应的函数。此函数是应用程序利用BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间的宏设立起来的。<o:p></o:p>

#标准消息的处理程序亦有标准命名,例如WM_PAINT必然由OnPaint处理。<o:p></o:p>

<o:p></o:p>

程序的死亡<o:p></o:p>

#使用者单击File/close,于是发出WM_CLOSE.<o:p></o:p>

#CMyFrameWnd并没有设置WM_CLOSE处理程序,于是交给默认的处理程序。<o:p></o:p>

#默认函数对于WM_CLOSE的处理方式就是调用::DestoryWindow,并因而发出WM_DESTORY。<o:p></o:p>

#默认的WM_DESTROY处理方式是调用::PostQuitMessage。因此发出WM_QUIT.<o:p></o:p>

#CwinApp::Run收到WM_QUIT后会结束其内部之消息循环,然后调用ExitInstance,这是CwinApp的一个虚拟函数。<o:p></o:p>

#如果CmyWinApp改写了ExitInstance,那么CwinApp::Run所调用的就是CmyWinApp::ExitInstance,否则就是CwinApp::ExitInstance.<o:p></o:p>

#最后回到AfxWinMain,执行AfxWinTerm,结束程序 


 
分享到:
评论

相关推荐

    MFC源码剖析之——MFC来龙去脉

    以传统的C/SDK 撰写Windows 程序,最大的好处是可以清楚看见整个程序的来龙去脉 和消息动向,然而这些重要的动线在MFC 应用程序中却隐晦不明,因为它们被Application Framework 包起来了。这一章主要目的除了解释MFC...

    侯捷 深入浅出MFC

    本篇详细解释 MFC 程序之来龙去脉,为初入 MFC 领域的读者奠定扎实的基础。说不定本篇会让你有醍醐灌顶之感。 第四篇【深入 MFC 程序设计】介绍各式各样 MFC 技术。「只知其然不知其所以然」的不良副作用,在程序...

    深入浅出MFC(侯俊杰 著)

    主要讲解MFC 程序的来龙去脉,非常值得初学都使用和想深入MFC 开发的使用

    深入浅出MFC【侯捷】

    简化的MFC程序结构——以Hello MFC为例 Hello程序程序代码 MFC程序的来龙去脉(causal relations) 我只借用两个类:CWinApp和CFrameWnd CWinApp——取代WinMain的地位 CFrameWnd——取代WndProc的地位 引爆器——...

    深入浅出MFC 2e

    MFC程序的来龙去脉(causal relations) 我只借用两个类:CWinApp和CFrameWnd CWinApp——取代WinMain的地位 CFrameWnd——取代WndProc的地位 引爆器——Application object 隐晦不明的WinMain AfxWinInit——AFX...

    侯捷- -深入浅出MFC

    MFC程序的来龙去脉(causal relations) 我只借用两个类:CWinApp和CFrameWnd CWinApp——取代WinMain的地位 CFrameWnd——取代WndProc的地位 引爆器——Application object 隐晦不明的WinMain AfxWinInit——AFX...

    深入浅出MFC

    对MFC的讲解从基本原理到三大聚集的概念及使用,通过对一个个小程序的详解,让你了解利用MFC进行程式设计的来龙去脉。 本书的主要内容如下: 1。对win32程式的基本概念和开发流程的阐述。 2。对MFC六大关键技术的...

    深入浅出MFC 第二版

    本篇详细解释MFC 程序之来龙去脉,为初入MFC 领域的 读者奠定扎实的基础。说不定本篇会让你有醍醐灌顶之感。 第四篇【深入MFC 程序设计】介绍各式各样MFC 技术。「只知其然不知其所以然」 的不良副作用,在程序设计...

    MFC深入浅出第二版(要示例代码联系zy03gis@126.com)

    本篇详细解释MFC 程序之来龙去脉,为初入MFC 领域的 读者奠定扎实的基础。说不定本篇会让你有醍醐灌顶之感。 第四篇介绍各式各样MFC 技术。「只知其然不知其所以然」的不良副作用,在程序设计的企图进一步开展之后,...

    深入浅出MFC(侯捷)

    第一篇提出学习MFC程序设计之前的必要基础,包括Widnows程序的基本观念以及C++的高阶议题。“学前基础”是相当主观的认定,不过,甚于我个人的学习经验以及教学经验,我的挑选应该颇具说服力。第二篇介绍Visual C++...

Global site tag (gtag.js) - Google Analytics