zoukankan      html  css  js  c++  java
  • MFC单文档框架分析及执行流程(转)

    原文转自 https://blog.csdn.net/u011619422/article/details/40402705

    首先来分析一下MFC单文档类的结构:

    它包括如下几个类:

    CAboutDlg :  对话框框类,对应应用程序的“帮助”->“关于”菜单,弹出“关于”对话框。

    CxxxApp: 派生自CWinApp , 为应用程序对象,负责应用程序的初始化和退出的清理工作。

    CMainFrame:  派生自CFrameWnd类, 为框架窗口对象,对应应用程序的主窗口。

    CxxxView: 派生自视图类CView , 为视图对象, 对应应用程序的客户窗口,用来显示文档数据。

    CxxxDoc: 派生自CDocument文档类,为文档对象,储存于应用程序相关的数据。在应用中没有直观的对应关系。

    程序的执行过程可以简单的表示如下:

    CWinApp 类创建的实例theApp , 整个程序有且只有一个,一切由它开始,最后以它结束。

    Visual c++所产生的代码首先通过初始数据段来创建一个全局变量,以及建立一些MFC内使用的对象,然后指向CWinApp类的构造函数

    一旦所有静态对象的构造函数都执行完毕,运行是艰苦就会调用WinMain函数,该函数初始化MFC应用,并调用CWinApp的InitInstance函数。

    完成了这些工作后,WinMian函数调用CWinApp类的Run函数,通常默认为CWinThread::Run() , 用来得到应用程序的消息循环,或者称为消息列队

    当应用程序接受到WM_QUIT消息,就意味着程序终止,这时,MFC就会调用CWinApp类的ExitInstance,然后是静态对象的析构函数,包括CWinApp对象,然后将控制权交还操作系统。

    以上就是MFC种单文档的执行过程

    学习很枯燥,以前学习的时候草草的学习完,但是时间久了,知识却都忘记了,所以不管如何,既然选择了就认真的学习下去。当某日你在回首的时候,别有一番滋味

    人生中必须有自己必须要坚持的信念,而我的就是“人生为棋,我愿为卒,行动虽慢,谁曾见我退过一步”。

  • 相关阅读:
    单调队列 POJ 2823
    大组合数取mod lucas 定理
    多校4
    多校2
    2016多校1
    百度之星 初赛B续
    iot-web增加apis-namespace组件
    25.75k8s
    新项目增加gradlew
    vue图片点击放大预览v-viewer
  • 原文地址:https://www.cnblogs.com/happykoukou/p/10112983.html
Copyright © 2011-2022 走看看