1、首先应该对 CWinApp类有充分的了解
它包含并管理着应用程序的文档/视窗的所有信息。它有一个成员变量
CDocManager * m_pDocManager,此变量是文档/视窗的管理器,m_templateList
是CDocManager里的一个列表,此列表里保存了所有文档模板的指针,当用户调用
CWinApp::AddDocTemplate( pDocTemplate ) 后该pDocTemplate存入了
CWinApp::m_pDocManager::m_templateList里。
CWinApp::GetFirstDocTemplatePosition()
CWinApp::GetNextDocTemplate(POSITION& pos)
是遍例所有的文档模板指针。
2、上面我们提到了文档模板(CMultiDocTemplate(我们主要针对对文档)),
这是一个极重要的类。CMultiDocTemplate::m_docList保存的所有该种文档的
文档实例的指针列表。下面两个函数用于维护CMultiDocTemplate::m_docList数据
CMultiDocTemplate::AddDocument(CDocument* pDoc);
CMultiDocTemplate::RemoveDocument(CDocument* pDoc);
而
CMultiDocTemplate::GetFirstDocPosition() const;
CMultiDocTemplate::CDocument* GetNextDoc(POSITION& rPos) const;
用于遍例该文档类型所有文档实例。
3、上面提到文档(CDocument)
CDocument 我们最熟悉不过了。每一个文档实例可有多个视与之相对应。
CDocument::m_viewList用来保存所有与此文档实例相关的View
CDocument::GetDocTemplate 可获得CMultiDocTemplate;
4、CView 他是放在CMDIChildWnd里的,每一个CMDIChildWnd有一个View
CView::GetDocument可获得与此视相关的CDocument
CView::GetParentFrame() 可获得CMDIChildWnd;
通过以上分析可见CWinApp,CMDIChildWnd,CView,CDocument,CMultiDocTemplate之间知道其中一个实例
必可知道其他所有几个实例,CWinApp统领全局,任何时候,只要获得CWinApp实例,则所有的文档模板,
文档实例,视,Frame窗口均可被枚举出来。AfxGetApp() 获得CWinApp实例指针。
它包含并管理着应用程序的文档/视窗的所有信息。它有一个成员变量
CDocManager * m_pDocManager,此变量是文档/视窗的管理器,m_templateList
是CDocManager里的一个列表,此列表里保存了所有文档模板的指针,当用户调用
CWinApp::AddDocTemplate( pDocTemplate ) 后该pDocTemplate存入了
CWinApp::m_pDocManager::m_templateList里。
CWinApp::GetFirstDocTemplatePosition()
CWinApp::GetNextDocTemplate(POSITION& pos)
是遍例所有的文档模板指针。
2、上面我们提到了文档模板(CMultiDocTemplate(我们主要针对对文档)),
这是一个极重要的类。CMultiDocTemplate::m_docList保存的所有该种文档的
文档实例的指针列表。下面两个函数用于维护CMultiDocTemplate::m_docList数据
CMultiDocTemplate::AddDocument(CDocument* pDoc);
CMultiDocTemplate::RemoveDocument(CDocument* pDoc);
而
CMultiDocTemplate::GetFirstDocPosition() const;
CMultiDocTemplate::CDocument* GetNextDoc(POSITION& rPos) const;
用于遍例该文档类型所有文档实例。
3、上面提到文档(CDocument)
CDocument 我们最熟悉不过了。每一个文档实例可有多个视与之相对应。
CDocument::m_viewList用来保存所有与此文档实例相关的View
CDocument::GetDocTemplate 可获得CMultiDocTemplate;
4、CView 他是放在CMDIChildWnd里的,每一个CMDIChildWnd有一个View
CView::GetDocument可获得与此视相关的CDocument
CView::GetParentFrame() 可获得CMDIChildWnd;
通过以上分析可见CWinApp,CMDIChildWnd,CView,CDocument,CMultiDocTemplate之间知道其中一个实例
必可知道其他所有几个实例,CWinApp统领全局,任何时候,只要获得CWinApp实例,则所有的文档模板,
文档实例,视,Frame窗口均可被枚举出来。AfxGetApp() 获得CWinApp实例指针。