创建新文档、窗口和视图

下列各图概述了文档、视图和框架窗口的创建过程。 其他关注参与对象的文章将提供更多详细信息。

在完成此过程之后,协同对象将存在并且将存储指向彼此的指针。 下列各图显示了对象的创建顺序。 您可以遵循各图之间的顺序。

Diagram showing the sequence for creating a document.
文档创建顺序

Diagram showing the Frame Window creation sequence.
框架窗口创建顺序

Diagram showing the sequence for creating a view.
视图创建顺序

若要了解框架如何初始化新文档、视图和框架窗口对象,请查看 MFC 库参考中的 CDocumentCViewCFrameWndCMDIFrameWndCMDIChildWnd 类。 另请参阅技术说明 22,该说明通过讨论框架的“文件”菜单上的“新建”和“打开”项的标准命令,详细介绍了创建和初始化过程。

初始化你在这些类中添加的内容

上面各图还建议了您可重写成员函数以初始化应用程序对象的位置。 视图类中 OnInitialUpdate 的重写是最适合初始化视图的位置。 OnInitialUpdate 调用将在创建框架窗口并且框架窗口中的视图附加到其文档之后立即出现。 例如,如果您的视图是滚动视图(派生自 CScrollView 而不是 CView),则您应基于 OnInitialUpdate 重写中的文档大小设置视图大小。 (有关此过程,请参阅 CScrollView 类的说明。)可替代 CDocument 成员函数 OnNewDocumentOnOpenDocument 来提供特定于应用程序的文档初始化。 通常,您必须重写二者,因为文档可通过两种方式创建。

在大多数情况下,您的重写应调用基类版本。 有关详细信息,请查看 MFC 库参考中 CDocumentCViewCFrameWndCWinApp 类的命名成员函数。

另请参阅

文档模板和文档/视图创建过程
文档模板创建
文档/视图创建
MFC 对象之间的关系