首页 百科知识 手工实现文当和视图的关联

手工实现文当和视图的关联

时间:2022-09-22 百科知识 版权反馈
【摘要】:在实际的项目开发时候仅仅依靠MFC AppWizard 生成的文当和视图、框架是不够的,因此我们需要掌握手工进行这种关联。手工进行文当和视图的关联可以有以下两种实现方式:模仿 MFCAppWizard 实现,使用CDocTemplate 的构造函数:在上面的分析中我们可以看到通过 CDocTemplate 的构造函数我们可以获得文档、视图和框架的关联。具体实现方法如下:实现。注意到框架类选择CMDIChildWnd 作为基类,文档类选择 CDocument作为基类,而视图类则可以根据需要选择 CView 或其子类等作为基类。

在实际的项目开发时候仅仅依靠MFC AppWizard 生成的文当和视图、框架是不够的,因此我们需要掌握手工进行这种关联。手工进行文当和视图的关联可以有以下两种实现方式:

模仿 MFCAppWizard 实现,使用CDocTemplate 的构造函数:在上面的分析中我们可以看到通过 CDocTemplate (无论是 SDI 中的 CSingleDocTemplate 还是 MDI 中的 CMultiDocTemplate )的构造函数我们可以获得文档、视图和框架的关联。因此可以通过模拟这种方式进行关联。具体实现方法如下:

1 创建新的文档、视图和框架类,方法是使用 VC 中的 Insert MFC Class

实现。注意到框架类选择CMDIChildWnd 作为基类,文档类选择 CDocument作为基类,而视图类则可以根据需要选择 CView 或其子类( CEditView )等作为基类。

2 为该框架添加菜单资源,方法是在 VC 资源窗口 Menu 菜单下添加新的菜

单,当然可以通过复制 VC 提供默认菜单进行修改。

3 App 类的 InitInstance ()中添加如下类似代码:

 

CMultiDocTemplate*  m_pDocTemplate;

m_pDocTemplate  = new CMultiDocTemplate(

IDR_TESTTYPE,//  改为你新建的菜单资源 ID

RUNTIME_CLASS(CTestDoc),//  改为你新建的文档类

RUNTIME_CLASS(CChildFrame),  // 改为你新建的框架类

RUNTIME_CLASS(CTestView));//  改为你新建的视图类

AddDocTemplate(m_pDocTemplate);

4 为了记录这个文档模版,你可以在 App 类中添加一个 CMultiDocTemplate*类型变量来维持这个文档模版。


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

我要反馈