创建新文档、Windows 和视图

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

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

用于显示创建文档顺序的图示。
创建文档时的顺序

图表显示框架窗口创建序列。
创建框架窗口中的序列

显示创建视图顺序的关系图。
创建视图时的顺序

有关框架如何初始化新文档、视图和框架窗口对象的信息,请参阅 MFC 库参考中的 CDocumentCView、CFrameWnd、CMDIFrameWndCMDIChildWnd 类。 另请参阅技术说明 22,其中进一步解释了关于“文件”菜单中“新建”“打开”项的框架标准命令的创建和初始化过程。

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

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

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

另请参阅

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