TN025:文档,查看和帧创建

备注

以下技术声明,则它在联机文档,首先包括了不更新。因此,某些过程和主题可能已过时或不正确。有关最新信息,建议您搜索议题在联机文档的索引。

此说明描述了创建,并所有权。 WinApps, DocTemplates 问题,文档,则框架和视图。

WinApp

在系统的一 CWinApp 对象。

它由 WinMain结构的内部实现静态构造并初始化。 必须从 CWinApp 派生执行一些有用的任何内容 (例外情况:扩展 DLL 不应有 CWinApp 实例 —初始化。 DllMain 完成)。

这一 CWinApp 对象拥有中的文档模板 ( CPtrList)。 具有一个或多个文档模板每个应用程序。 DocTemplates 从资源文件 (即字符串数组) 通常在加载 CWinApp::InitInstance

pTemplate = new CDocTemplate(IDR_MYDOCUMENT, ...);
AddDocTemplate(pTemplate);

这一 CWinApp 对象拥有该应用程序的所有框架窗口。 在 CWinApp::m_pMainWnd应存储应用程序的主框架窗口;通常,如果尚未允许 AppWizard (ide) 为您的,在 InitInstance 实现的 m_pMainWnd 。 对于单 (SDI)文档界面 (sdi) 这是的一 CFrameWnd 作为主应用程序框架窗口以及单个文档框架窗口。 对于多文档界面 (mdi) 这 (MDI)是的 MDI 框架 (类) CMDIFrameWnd该为主应用程序框架窗口包含所有子 CFrameWnds。 每个子窗口是类 CMDIChildWnd (从派生 CFrameWnd),并用作其中一个潜在文档框架窗口。

DocTemplates

CDocTemplate 是创建者,并且管理器文档。 它拥有文档中创建。 如果应用程序使用下述该资源基于的方法,它不需要从 CDocTemplate派生。

为 SDI 应用程序,类 CSingleDocTemplate 记录打开的文档。 对 MDI 应用程序, CMultiDocTemplate 将列表的类 ( CPtrList) 所有当前打开文档创建从该模板。 CDocTemplate::AddDocumentCDocTemplate::RemoveDocument 用于添加或移除文档提供虚拟成员函数从模板。 CDocTemplateCDocument friend,为了可以设置受保护的 CDocument::m_pDocTemplate 返回指针指回文档创建文档的模板。

CWinApp 处理默认值 OnFileOpen 实现,或者将查询任何文档模板。 实现包括查找已打开文档和决定打开新的数据格式文档。

CDocTemplate 管理绑定的 UI 文档和框架。

CDocTemplate 保留数字的计数的未命名文档。

CDocument

CDocumentCDocTemplate拥有。

文档具有查验文档当前打开的视图的列表 (从派生 CView) ( CPtrList)。

文档不创建/销毁视图,但是,它们彼此附加属性,在创建之后。 在文档关闭的 (即通过文件/关闭),任何附加的视图将关闭。 当在文档的最后一个视图结束 (即 windows/关闭) 文档中已关闭。

CDocument::AddViewRemoveView 接口用于维护视图列表。 CDocumentCView friend,为了可以设置 CView::m_pDocument 返回一个指针。

CFrameWnd

CFrameWnd (也称为帧) 播放角色与在 MFC 1.0,但是, CFrameWnd 类现在设计在许多情况下使用,而无需派生新类。 派生类 CMDIFrameWndCMDIChildWnd 也会引发许多标准命令已实现。

CFrameWnd 为创建 windows 负责在框架的工作区。 通常在加载帧的工作区的一个主窗口。

对于 MDI 框架窗口,工作区填充页的所有 MDI 子窗体框架窗口父的 MDICLIENT 控件。 对于 SDI 框架窗口或 MDI 子窗体框架窗口,工作区通常用 CView派生的窗口对象。 在 CSplitterWnd,视图的工作区填充 CSplitterWnd 窗口对象和 CView派生的窗口对象 (一个拆分窗格) 创建为 CSplitterWnd的子窗口。

请参见

其他资源

由Number "技术说明

技术说明按类别