首页 百科知识 框架和视图的关联

框架和视图的关联

时间:2022-09-22 百科知识 版权反馈
【摘要】:在第一部分分析我们知道,框架和视图其实都是 windows 窗口,不过框架提供了菜单、标题栏、状态栏等资源,而视图则只是一个矩形区域。框架和视图的关联也可以通过模仿 MFC AppWizard 实现,使用 CDocTemplate 的构造函数实现,即和 2.1 中文档和视图间的关联方式相同,这里就不再给出,参看上面的详细实现即可。

在第一部分分析我们知道,框架和视图其实都是 windows 窗口,不过框架提供了菜单、标题栏、状态栏等资源,而视图则只是一个矩形区域。 MFC 程序中视图决定大多数时候要依附于一个框架( SDI 中的 MainFrame MDI 中的子框架窗口),可以这样理解,框架相当于一个窗口容器(当然它本身也是一个 windows 窗口),而视图则正好是放置在框架内客户区域的内容。

框架和视图的关联也可以通过模仿 MFC AppWizard 实现,使用 CDocTemplate 的构造函数实现,即和 2.1 中文档和视图间的关联方式相同,这里就不再给出,参看上面的详细实现即可。

同上面的分析,在很多的时候我们并不是需要提供一个新的文档模版,我们只是需要显示一个新的窗口( MDI 程序),例如我们在作 MIS 系统界面管理的时候,经常出现的情况就是用户点击一个菜单选项,即弹出一个处理窗口。而要显示一个新的窗口,我们可以通过 CDocTemplate OpenDocumentFile ()方法打开一个文档实现,这样就建立一套的文档、视图和框架的体系。上面已经分析到,我们看到 MFC 的窗口实际上框架和视图的一个结合体,我们并不一定要提供文档、视图、框架的整个体系,我们只需要框架和视图的结合即可实现窗口的显示,这就要经过两个步骤实现:第一步将视图和框架关联,第二步显示框架(也就是一个 windows 窗口的显示)。以下给出框架和视图关联的具体实现:

 

CChildFrame  * pFrm = new CChildFrame();// 框架可以是你新建或者定制的框架类

CCreateContext  context;

context.m_pNewViewClass  = RUNTIME_CLASS(CDemoView);// 视图可以是你想显示的视图

pFrm->LoadFrame(IDR_TEST2TYPE,WS_CHILD

WS_OVERLAPPEDWINDOW,  this, &context);// 菜单资源你可以修改

pFrm->ShowWindow(SW_SHOW);//  显示窗口

pFrm->InitialUpdateFrame(NULL,true);//  调用视图的  OnInitialUpdate ()和框架的 ActiveFrame (),你可以在这里设置窗口的标题

当然你可以在这里添加视图和文档的关联,具体实现是添加以下代码:

 

context.m_pCurrentDoc  = m_pDoc;// m_pDoc 就是你要关联到的文档对象


免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈