单文档视图架构
Posted Autumn の Box
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单文档视图架构相关的知识,希望对你有一定的参考价值。
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消息处理中将文档类对象和视图类对象建立绑定关系
以上是关于单文档视图架构的主要内容,如果未能解决你的问题,请参考以下文章