单文档视图架构

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消息处理中将文档类对象和视图类对象建立绑定关系

 

转载于:https://www.cnblogs.com/zhouwanqiu/p/6918702.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值