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应用程序框架的各个对象都从各自的基类继承了一些获得其他对象指针的方法,从而可以使各对象通过这些指针与其他对象的成员互相联系

  • 相关阅读:
    非域账户如何连接SQL Server Analysis Service
    Ranet.UILibrary.OLAP
    给Silverlight项目Ranet.UILibrary.OLAP添加客户端调试功能
    编译及安装QCA类库
    关于软件生态环境
    Windows7中操作mysql数据库
    介绍自己
    VS2008技巧收集
    .NET开发不可错过的25款必备工具
    如何做搜索引擎优化(SEO)
  • 原文地址:https://www.cnblogs.com/day-up/p/3970256.html
Copyright © 2011-2022 走看看