zoukankan      html  css  js  c++  java
  • 应用程序各对象创建的顺序

    应用程序对象时全局对象,它在启动之前由系统创建。应用程序启动之后,程序的主函数首先调用应用程序对象的初始化函数InitInstace(),并在该函数中创建文档模板对象

    CSingleDocTemplate *pDocTemplate;//声明文档模板指针(单文档)

        pDocTemplate = new CSingleDocTemplate(//创建文档模板对象
            IDR_MAINFRAME,//文档模板使用的资源ID
            RUNTIME_CLASS(CNOTEDoc),//创建文档对象
            RUNTIME_CLASS(CMainFrame), //创建主SDI框架窗口对象
            RUNTIME_CLASS(CNOTEView));//创建视图对象
        AddDocTemplate(pDocTemplate);//将文档模板加入链表

    CMultiDocTemplate* pDocTemplate;//声明文档模板指针(多文档)
        pDocTemplate = new CMultiDocTemplate(//创建文档模板
            IDR_XINXIHTYPE,//加载文档资源
            RUNTIME_CLASS(CXinxiHiding0320Doc),//创建文档对象
            RUNTIME_CLASS(CChildFrame), //创建子窗口对象
            RUNTIME_CLASS(CXinxiHiding0320View));//创建视图对象
        AddDocTemplate(pDocTemplate);//加入链表

    CMainFrame* pMainFrame = new CMainFrame;//创建应用程序主窗口
        if (!pMainFrame->LoadFrame(IDR_MAINFRAME))//加载资源
            return FALSE;
        m_pMainWnd = pMainFrame;//主窗口对象赋予指针m_pMainWnd

    在用文档模板构造函数创建文档模板对象的时候,在文档模板构造函数的参数列表中除了传递所需要的资源ID之外,还用MFC的宏RUNTIME_CLASS()传递了文档类、框架窗口类和视图类的类信息表,然后由模板类的构造函数根据资源和类信息表动态的创建文档、视图、窗口框架三个对象,其中,视图对象是由框架窗口对象创建并管理的。最后,应用程序创建文件模板文件并将其加入由应用程序对象维护的文档模板链表中。

    应用程序框架对象之间的联系方法:MFC应用程序框架的各个对象都从各自的基类继承了一些获得其他对象指针的方法,从而可以使各对象通过这些指针与其他对象的成员互相联系

  • 相关阅读:
    docker 安装redis监控redis-stat
    maven 项目依赖打包 提示 package com.。。。。。 does not exist
    docker 建立跨主机网络
    docker-compose 安装mongodb集群==多台服务器
    docker 安装mongodb集群==多台服务器
    博客将近一年半没有更新了
    elasticsearch 使用同义词
    《SpringBoot第一篇:HelloWorld启蒙》
    go学习路线资料
    docker和k8s的概念-IaaS、PaaS、SaaS 的区别
  • 原文地址:https://www.cnblogs.com/day-up/p/3970256.html
Copyright © 2011-2022 走看看