文档视图结构解析
2010-01-22 17:15
162 查看
文档视图结构解析
2008-05-06 13:51
2008-05-06 13:51
theApp是一个唯一的全局变量,它的主要功能是通过调用已经被封装的WinMain主函数启动程序。 基于文档视图框架的MFC应用程序主要对象之间的相互关系,如上图所示。 1在主框架(CFrameWnd)中访问视图(CView) GetActiveView() 功能: 返回活动的CView对象 原型: CView* GetActiveView() const; 说明: 通常使用的视图都是CView的派生类,使用派生类中的函数之前需要做一次类型转换,例如 ((CXXXView*)GetActiveView())->MyFunction(); 该问题是父类指针和子类指针的问题。 2在视图(CView)中访问主框架(CFrameWnd) GetParentFrame() 功能: 返回活动的CView对象 原型: CFrameWnd* GetParentFrame() const; 说明: 在视图中获取主框架的方法属这个最简单。 3在视图(CView)中访问文档对象(CDocumet) GetDocument() 功能: 获取视图的文档指针 原型: CDocumnet* GetDocument() const; 说明: 使用Wizard生成文档视图结构的程序,VC会根据项目自动重载生成类似下面的代码: #ifndef _DEBUG inline CXXXDoc* CXXXView::GetDocumnet() { return (CXXXDoc*)m_pDocument; } #endif 4在文档(CDocument)中访问视图(CView) UpdateAllViews(NULL) 功能: 通知所有视图,文档对象已经被修改 原型: void UpdateAllViews( CView* pSender, //要更新的视图指针,如果更新所有视图,设置为NULL LPARAM lHint = 0L, //包含更改消息的通知 CObject* pHint = NULL) 说明: 使用中一般都使用UpdateAllViews(NULL)的形式,它调用与当前文档对象关联的所有视图的OnUpdate()虚函数。 Cdocument::AddView 功能: 用来建立一个视图对象与文档对象的连接(将视图添加在链表中,并将视图的文档指针指向该文档)。 Cdocument::GetFirstViewPosition() Cdocument::GetNextView(pos) 功能: 用来遍历视图对象 5文档模板对象创建文档对象 CSingleDocTemplate () CMultiDocTemplate() 功能: 框架使用构造函数生成文档对象,并且把文档、框架和视图连接起来 6文档对象访问文档模板对象 GetDocTemplate() GetFirstDocPosition() GetNextDoc(pos) 功能: 在SDI中,一个文档模板只能创建一个文档对象,二者一一对应,所以通过GetDocTemplate()就可以取得指向文档模板的指针;在MDI中,一个文档模板可以创建多个文档对象,每个文档模板实例都维护一个文档对象列表,用来存储与之关联的文档对象,使用GetFirstDocPosition() GetNextDoc(pos)遍历所有文档。 7少用 8文档模板对象创建框架窗口对象 CSingleDocTemplate () CMultiDocTemplate() 功能: 框架使用构造函数生成文档对象,并且把文档、框架和视图连接起来 [b]9应用程序对象通过CDocManager管理文档模板对象 10应用程序对象在InitInstance()中创建文档模板对象 [/b] |
相关文章推荐
- 视图之UINavigationController结构解析(侧重于文档分析)
- MFC文档视图结构解析
- 视图之UINavigationController结构解析(侧重于文档分析)
- 视图之UINavigationController结构解析(侧重于文档分析)
- MFC文档视图结构解析--改造原结构--实用项目实践
- 使用单文档视图结构把Word嵌入到VC程序中(2)
- MFC浅析(1) 文档视图结构中,缺省的命令处理
- C++--深入分析MFC文档视图结构(项…
- 剖析MFC的文档视图结构
- 深入分析MFC文档视图结构(项目实践)
- MFC文档视图结构内幕
- 深入分析MFC文档视图结构(项目实践)
- MFC文档/视图结构体系及SDI回顾(1)
- MFC文档/视图结构体系及SDI回顾(2)
- 文档视图结构中利用序列化机制使用OLE剪贴板
- 深入分析MFC文档视图结构(项目实践)
- 深入分析MFC文档视图结构(项目实践)
- 深入分析MFC文档视图结构
- 利用AppFace美化VC程序(对话框或文档视图结构)
- 文档/视图结构中的各个部分是如何联系到一起的(2)