Visual C++ MFC文档视图详解:结构与用法揭秘

需积分: 3 7 下载量 47 浏览量 更新于2024-07-31 收藏 287KB DOCX 举报
MFC文档与视图深入详解是一篇针对Visual C++ (VC++) 中文档与视图管理的详细教程。在多文档应用(MultipleDocuments)中,当你使用MFCAppWizard创建一个基础项目时,会生成一系列关键类,包括CMainFrame(主框架窗口)、CChildFrame(子框架窗口,单文档应用中不存在)、CAboutDlg(关于对话框)、CADoc(文档类)、CAView(视图类)以及CAApp(应用程序类),它们共同构建了MFC应用程序的基本架构。 文档视图结构的核心是CWinApp类的继承关系,CAApp从CWinApp派生而来,通过CDocManager(文档管理器)实现了对文档模版的管理和创建。CDocManager内部的CPtrList m_templateList存储了文档模版,这些模版在CAApp的InitInstance方法中通过AddDocTemplate函数添加,并且每个模板都包含了Document、View、Frame的CRuntimeClass指针以及用于菜单资源指定的m_nIDResource。 文档模版中的Document类有一个回指到CDocTemplate的指针,而视图管理则是通过Document类的CPtrList m_ViewList完成,每个视图关联一个文档。CFrameWnd代表窗口框架,它有一个CView类型的指针m_pActiveView,表示当前活动的视图;而CView类则通过m_pDocument字段链接到其对应的文档对象。 值得注意的是,虽然MFCAppWizard默认只生成一个文档模版,但在实际开发中通常需要根据需求增加更多的文档模版,以便支持不同的视图和功能。在创建新文档模版时,开发者需要明确各个组件之间的关系,并在初始化阶段进行配置,以确保应用程序能够正确处理文档与视图的交互。 这篇教程详细解释了如何在MFC中组织和管理文档与视图,包括类结构、生命周期管理和资源分配,这对于理解和构建复杂的Windows应用程序至关重要。同时,它也强调了灵活定制的重要性,以便满足不同项目的需求。