• 单文档视图架构


    1、相关问题

      只能管理文档(只能有一个文档对象)

    2、相关类

      CDocument / CView / CFrameWnd / CWinApp

      CDocManager -文档管理类

      CSingleDocTemplate -单文档模版类

    3、关系图

      theApp

        |---->m_pDocManager  //文档管理类对象地址

              |---->m_templateList

                    |---->CSingleDocTemplate(pTemplate)                

                          |---->m_pOnlyDoc  //文档类对象地址

                          |---->m_pDocClass  //文档类静态变量地址 RUNTIME_CLASS(CMyDoc)

                          |---->m_pFrameClass //框架类静态变量地址 RUNTIME_CLASS(CMyFrameWnd)

                          |---->m_pViewClass   //视图类静态变量地址 RUNTIME_CLASS(CMyView)

    4、OnFileNew的执行过程

      4.1利用theApp获取文档管理类对象地址(m_pDocManager)

      4.2通过文档管理类中的一个链表成员m_templateList的第一个节点获取单文档模版类对象地址(pTemplate)

      4.3利用pTemplate获取m_pDocClass,并利用m_pDocClass调用CreateObject函数动态创建文档类对象,并获取对象地址

      4.4利用pTemplate获取m_pFrameClass,并利用m_pFrameClass调用CreateObject函数,动态创建框架类对象,并获取对象地址

      4.5利用框架类对象(pFrame)调用LoadFrame函数,创建主框架窗口

      4.6在主框架窗口的WM_CREATE消息中处理动态创建视图类对象,并利用视图类对象创建视图窗口

      4.7在视图窗口的WM_CREATE消息处理中将文档类对象和视图类对象建立绑定关系

  • 相关阅读:
    iOS 后台定位
    关于烂代码的那些事
    APP上线前,如何做运营推广工作?
    iOS图片折叠效果:Layer的contentsRect属性和渐变层
    iOS中几种数据持久化方案:我要永远地记住你!
    iOS-CoreLocation:无论你在哪里,我都要找到你!
    轻松学习之 IMP指针的作用
    iOS之友盟错误统计解决
    文字渐变效果:图层中的mask属性
    如何坚持每周写一篇博客
  • 原文地址:https://www.cnblogs.com/zhouwanqiu/p/6918702.html
Copyright © 2020-2023  润新知