框架(CFrameWnd)类在哪一个函数中创建视图(CView)对象?可以动态创建视图对象的前题条件是什么?

谢谢啦... 谢谢啦 展开
 我来答
帐号已注销
2011-11-08 · TA获得超过143个赞
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:168万
展开全部
在CXXXApp::InitInstance()函数里,有类似于这样的一段代码:
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_Test_MFC2TYPE,
RUNTIME_CLASS(CTest_MFC2Doc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CTest_MFC2View));
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate);
先创建1个CMultiDocTemplate的对象。这个类是用来创建文档模板的。在它的构造函数里传了4个参数。第1个参数是文档类型,其实就是个整数。你可以再自定义一些类型,这样你的程序就能处理不同类型的文档了。第2到4个参数分别是文档类、框架窗口类、视图类的RuntimeClass,注意,在这里就把框架(CFrameWnd的派生类)和视图(CView的派生类)关联到一个文档模板里了。接下来调用AddDocTemplate(pDocTemplate),添加一个文档模板到CXXXApp类里。程序编译好后,当你单击菜单上“文件”->“新建”时,就会按照你添加的那个文档模板,创建一个文档(实际上是创建了CTest_MFC2Doc、CChildFrame、CTest_MFC2View这3个类的对象。这3个对象是关联在一起的,分别负责保存数据、显示框架窗口(注意,是里面的那个窗口不是最外边的那个)、显示视图)。这3个对象的创建代码是MFC事先写好的,你要做的只是new1个(也可以是多个)CMultiDocTemplate的对象,然后调用AddDocTemplate把它加到CXXXApp里。

说的稍有点乱,不明白的地方可以向我追问。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式