AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > VC编程

在Visual C++中如何建立多模板文档

51自学网 2015-08-30 http://www.wanshiok.com

  我们知道,在一般的MDI应用程序中,只有一个文档模板,程序只能打开一种类型的文档。因此,只要调用File/New或者File/Open创建或者打开文档即可,至于文档、视和框架窗口之间的关系,则由文档模板在幕后控制,不须要对文档模板进行操作。但是,如果应用程序需要处理多种类型的文档,并且何时打开何种文档均需手工控制的话,此时,就必须对文档模板进行编程。

  例如,我们需要处理FIRST和SECOND两种文件类型。其中FIRST和SECOND的数据存放格式不同,就不能用相同的数据结构来描述,因此,把它们的数据都存入一个文档是不合适的,若FIRST和SECOND的视也是不同的(比如一个是图像而另一个是声音),因此,要解决这个问题只能分别建立两套文档模板,两套框架窗口,两套文档和两套视,分别用于存放和显示FIRST和SECOND 的数据。并且程序可以根据文件名来分别处理FIRST和SECOND 类型的文件。其主要步骤如下:

(1)在应用程序类(CWinApp)的派生类的InitInstance()函数中修改相应部分,增加程序所处理的文档模板,如下所示:

CMultiDocTemplate* pFirstDocTemplate;
pFirstDocTemplate = new CMultiDocTemplate(
 IDR_FIRSTTYPE,
 RUNTIME_CLASS(CFirstDoc), //指定第一种类型文件的文档类
 RUNTIME_CLASS(CFirstFrame), //指定第一种类型文件的子框架
 RUNTIME_CLASS(CFirstView)); //指定第一种类型文件的视
AddDocTemplate(pFirstDocTemplate); //为第一种类型的文档添加模板
CMultiDocTemplate* pSecondDocTemplate;
pSecondDocTemplate = new CMultiDocTemplate(
 IDR_SECONDTYPE,
 RUNTIME_CLASS(CSecondDDoc), //指定第二种类型文件的文档类
 RUNTIME_CLASS(CSecondFrame), //指定第二种类型文件的子框架
 RUNTIME_CLASS(CSecondView)); //指定第二种类型文件的视
AddDocTemplate(pSecondDocTemplate); //为第二种类型的文档添加模板

<

 

 

 
说明
:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
上一篇:谈谈MFC中的消息映射  下一篇:枚举NT&nbsp;services