现在假设要做一个VC++多文档程序,一个文档类型处理txt文件,一个文档类型处理图片文件;

新加一个Img的文档模板类型;

先新建一个多文档工程,名为duodocDemo1;

在菜单选择 插入-类;

插入CImgDoc类,选择Base class为CDocument,类名输入CImgDoc,类的类型此时为MFC Class;其他不用管,确定;
    如此插入CImgView类,CImgFrame类;

完成后项目文件如下;

然后在Resource.h定义一个资源标识符IDR_IMGTYPE;前面三行框架自带,40001这个自己加的;
    #define IDD_ABOUTBOX                100
    #define IDR_MAINFRAME                128
    #define IDR_DUODOCTYPE                129
    #define IDR_IMGTYPE                                 40001

然后在应用程序类的InitInstance()中添加新的文档模板;
    CMultiDocTemplate* pDocTemplate;
    pDocTemplate = new CMultiDocTemplate(
        IDR_DUODOCTYPE,
        RUNTIME_CLASS(CDuodocDemo1Doc),
        RUNTIME_CLASS(CChildFrame), // custom MDI child frame
        RUNTIME_CLASS(CDuodocDemo1View));
    AddDocTemplate(pDocTemplate);

CMultiDocTemplate* pImgTemplate;
    pImgTemplate = new CMultiDocTemplate(
        IDR_IMGTYPE,
        RUNTIME_CLASS(CImgDoc),
        RUNTIME_CLASS(CImgFrame),
        RUNTIME_CLASS(CImgView));
    AddDocTemplate(pImgTemplate);
    前一个模板是框架已经有的,后一个是自己加的;

然后在应用程序类cpp文件的头部,添加包含新加三个类的头文件;后三行是自己加的;
    #include "MainFrm.h"
    #include "ChildFrm.h"
    #include "duodocDemo1Doc.h"
    #include "duodocDemo1View.h"
    #include "ImgFrame.h"
    #include "ImgDoc.h"
    #include "ImgView.h"

然后进入资源中的字串表,在IDR_DUODOCTYPE上右击,在弹出菜单选择 新建字串;这样新建的字串将加在其后;
    新加字串值为:
    Img程序界面\nImg\nImg\nImg文件(*.jpg)\n.jpg\nImg.Document\nImg Document

然后运行程序,出现如下对话框;可以选择新建某种模板;程序运行后,点 新建,也会出现此对话框;此时可以新建两种不同类型的文档模板;

然后在CDuodocDemo1App::InitInstance()中,ProcessShellCommand处理之前,加入

cmdInfo.m_nShellCommand = CCommandLineInfo.FileNothing;

一句;如下;功能如注释;

// Parse command line for standard shell commands, DDE, file open
    CCommandLineInfo cmdInfo;
    ParseCommandLine(cmdInfo);

//主要是在应用程序的建立的时候不建立任何类型的文档。
    cmdInfo.m_nShellCommand = CCommandLineInfo.FileNothing;

// Dispatch commands specified on the command line
    if (!ProcessShellCommand(cmdInfo))
        return FALSE;

再运行程序,只会出现一个空的主框架;不会建立任何类型的文档窗口;

到此新建一种类型的文档模板已经实现了;但是还没有任何功能。

VC++ 多文档模板(添加新文档模板)编程实例相关推荐

  1. linux如何右键新建文件夹,在Ubuntu 18.04右键菜单中增加新文档(New Document)及其他类型选项...

    本文教你在Ubuntu 18.04操作系统下使用命令操作在右键菜单中增加"新文档(New Document)"选项,包括为不同文件类型增加右键菜单选项的方法.起因是当我尝试创建一个 ...

  2. Java在PDF文档中添加或删除页面

    前言 当你编辑一个PDF文档时,有时需要删除文档中多余的页面或向文档中添加新的页面.本文将向您演示如何使用Spire.PDF for Java在PDF文档中添加或删除页面. 程序环境 安装Spire. ...

  3. 多个word文档合并为一个文档 Java实现

    不用额外新建一个空文档,适合需要不断往一个文档中添加其他文档的情况.适合每页格式固定,添加文件新起一页的情况.可进行测试. package could.com.hanwen.govapi.Test;i ...

  4. html加密文档如何打开,Word文档加密打不开怎么办?

    今天总结一下对Word文档解除密码保护的三种方法,如下: 方法一:文件另存法 打开受保护的文档,依次单击"文件→另存为",弹出"另存为"对话窗口,在" ...

  5. 使用 .NET Core模板引擎创建自定义的模板和项目

    本文要点 .NET CLI 包含了一个模板引擎,它可以直接利用命令行创建新项目和项目项.这就是"dotnet new"命令. 默认模板集涵盖了默认控制台和基于 ASP.NET 的应 ...

  6. 自定义Word样式模板,设置为默认模板

    文章目录 前言 一.具体操作步骤 前言 由于在大学毕业写论文的时候,论文格式的要求十分严格,但是在完成论文编辑之后,发现这个论文的格式样式对于今后word排版大有益处,于是就将该论文的格式样式保存在一 ...

  7. html模板改成织梦模板教程,织梦教程:如何用dedecms织梦模板搭建网站?

    如何用dedecms织梦模板搭建网站?目前,dedecms织梦程序是互联网很多新手站长建站用的比较多的,它的安装过程比较简单,代码修改也没那么复杂,可以进行二次开发,加上有一定的知名度,在网上可以找到 ...

  8. html模板改成织梦模板教程,织梦模板修改及使用详细视频教程

    今天小编为大家带来织梦模板使用修改及使用详细视频教程. 相信有很多小白都有体会到,安装好织梦,进入后台一脸懵,完全不会使用,今天我给大家亲身录制的个视频教程. 安装方法: 安装dede模板方法有多种, ...

  9. php往pdf模板添加数据,用PHP编写/绘制PDF模板文档

    我希望能够用PHP在现有的PDF文档上编写/覆盖文本.我希望做的是有一个pdf文档,它可以作为一个模板,并通过打开模板文档.覆盖相关文本以及将结果作为一个新文档来填补空白.模板文档是一个单独的页面,因 ...

最新文章

  1. 习题:八数码难题(双向BFS)
  2. 【机器学习-学习笔记】单/多变量线性回归、多项式回归、逻辑回归、过拟合、正则化
  3. Linux Shell常用技巧(二)
  4. 你会在你的WebRTC 应用程序中使用哪种视频编解码器呢?
  5. 大牛书单 | 消息队列方向的好书
  6. SAP CRM Fiori应用My Task的前台优化
  7. Oracle-逻辑体系结构
  8. 算法高级(2)-多年以前的电脑算命是怎么回事?
  9. 利用pandas,pyplot 绘制柱状图
  10. mysql 亿级高并发_亿级流量系统架构之如何设计每秒十万查询的高并发架构.md
  11. Mongodb 与 MySQL对比
  12. 如何解决chm类型的文件在Windows操作系统中无法打开
  13. 新版Fiddler1.5.1的证书导出和Chrome,Edge,Firefox浏览器导入证书
  14. 网络控制系统分析与设计——时延问题的网络控制系统建模
  15. 安捷伦mso8104a示波器电源烧毁故障维修【图文】
  16. Ubuntu ROS下Conda的最好安装方式
  17. java对象的哈希值_对象的哈希值
  18. C++ 实现扫雷小游戏
  19. 实验室建立计量管理体系的重要性和意义
  20. OpenCV开发笔记(七十二):红胖子8分钟带你使用opencv+dnn+tensorFlow识别物体

热门文章

  1. 如何在fluid中添加自定义控件
  2. 计算机组成原理1--原码、反码、补码、移码之间的关系
  3. Python 技术篇-用paramiko库实现winodws本地文件上传至linux服务器实例演示
  4. C++——构造函数析构函数
  5. STM32CubeMX HAL库串口+DMA数据发送不定长度数据接收
  6. [YTU]_2635(P4 游戏中的Human角色)
  7. 8.2 matlab曲线对象和曲面对象(曲线对象、曲面对象、光照处理、图形对象的反射特性)
  8. class多项式(链表实现)
  9. 二维矩阵与二维矩阵之间的卷积
  10. windows自带反编译chm文件