CFrameWnd类在哪个函数中创建CView对象?动态创建可视化对象的前提条件是什么?
在CXXXApp::InitInstance()函数中,有一段类似如下的代码:
CMultiDocTemplate * pDocTemplate
pDocTemplate = new CMultiDocTemplate(IDR _ Test _ MFC 2 type,
RUNTIME_CLASS(CTest_MFC2Doc),
RUNTIME_CLASS(CChildFrame),//自定义MDI子框架
RUNTIME _ CLASS(CTest _ MFC 2 view));
如果(!pDocTemplate)
返回FALSE
AddDocTemplate(pDocTemplate);
首先创建CMultiDocTemplate的1个对象。这个类用于创建文档模板。在其构造函数中传递了四个参数。1参数是文档类型,实际上是一个整数。您可以自定义更多的类型,以便您的程序可以处理不同类型的文档。第二到第四个参数分别是文档类、框架窗口类和视图类的RuntimeClass。注意,框架(从CFrameWnd派生)和视图(从CView派生)在这里与一个文档模板相关联。接下来,调用AddDocTemplate(pDocTemplate)将文档模板添加到CXXXApp类中。程序编译完成后,当你点击菜单上的“文件”->;创建“新建”时,会根据您添加的文档模板创建一个文档(实际创建了CTest_MFC2Doc、CChildFrame、CTest_MFC2View等三类对象。这三个对象是有关联的,分别负责保存数据、显示框架窗口(注意里面的窗口不是最外面的那个)和显示视图。这三个对象的创建代码都是MFC事先写好的。你要做的就是new1(或多个)CMultiDocTemplate对象,然后调用AddDocTemplate将其添加到CXXXApp中。
我有点困惑。不懂可以问我。