创建文档框架窗口
文档/视图创建展示了 CDocTemplate 对象如何协调创建框架窗口、文档和视图并将它们连接在一起。 CDocTemplate
构造函数的三个 CRuntimeClass 参数指定文档模板动态创建的框架窗口、文档和视图类,以响应“文件”菜单上的“新建”命令或 MDI 窗口菜单上的“新建窗口”命令等用户命令。 文档模板存储此信息供以后在创建视图和文档的框架窗口时使用。
若要使 RUNTIME_CLASS 机制正常工作,必须使用 DECLARE_DYNCREATE 宏声明派生的框架窗口类。 这是因为框架需要使用类 CObject
的动态构造机制创建文档框架窗口。
当用户选择创建文档的命令时,框架会调用文档模板来创建文档对象、其视图和将显示视图的框架窗口。 创建文档框架窗口时,文档模板将创建相应类的对象,即从 SDI 应用程序的 CFrameWnd 派生的类,或从 MDI 应用程序的 CMDIChildWnd 派生的类。 然后,框架调用框架窗口对象的 LoadFrame 成员函数,从资源获取创建信息并创建 Windows 窗口。 框架将窗口句柄附加到框架窗口对象。 然后,它将视图创建为文档框架窗口的子窗口。
在决定何时初始化 CWnd
派生对象时要小心。