您现在的位置是: 软件 > 开发者网络 > 程序方舟 > 开发专栏 > Visual C++开发 > 正文
·速成电脑精英(包分配)白领高薪一族从这里开始



-Java套接字编程(下)
-MediaStudio Pro 6.5教程
-三款卸载软件最新试用
-基于Visual C++的Winsock API研究

在Visual C++中如何建立多模板文档
2001-03-08· ·王伟··yesky

1 2  下一页

  我们知道,在一般的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); //为第二种类型的文档添加模板

1 2  下一页

■ 相关内容
 单独使用CRecordSet
 用Visual C++中实现混合分割视图
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!