精华内容
下载资源
问答
  • Word.Document doc = this.Application.ActiveDocument; //模板样式添加当前文档 doc.CopyStylesFromTemplate(@"C:\Users\Administrator\Desktop\新建文件夹\Doc1.dotx"); ...
                Word.Document doc = this.Application.ActiveDocument;
        
                //模板样式添加到当前文档
                doc.CopyStylesFromTemplate(@"C:\Users\Administrator\Desktop\新建文件夹\Doc1.dotx");

     

    转载于:https://www.cnblogs.com/kingline/p/9816536.html

    展开全文
  • 本文件包含了在应用程序中遍历文档模板的源代码以及代码说明,并提到所需函数及其说明。
  • VC_环境下的多文档模板应用程序开发.pdf VC_环境下的多文档模板应用程序开发.pdf
  • 1. 准备好.dotm模板文件,放入模板路径 C:\Users\AppData\Roaming\Microsoft\Templates(每个人电脑的路径可能不一样,大家用关键字搜索一下即可)2. 打开文档,“开发工具->文档模板”。选中准备好的.dotm...

    1. 准备好.dotm模板文件,放入模板路径 C:\Users\AppData\Roaming\Microsoft\Templates(每个人电脑的路径可能不一样,大家用关键字搜索一下即可)

    2. 打开文档,“开发工具->文档模板”。选中准备好的.dotm模板并“确定”。

    展开全文
  • 软件开发说明需要的文档,有标准的格式和内容框架
  • 英飞凌-IoT应用的快速、灵活、简单的原型模板设计
  • 最新公司线上应用电子合同网站应用系统购买合同书WORD文档模板.docx
  • 文档包含软件质量保证过程文档及其应用模板文档,是cmmi 三级评估通过的文档,相信对cmmi评估、软件质量保证实践有很大的参考意义。
  • 模板文档视图结构的应用 自撰 00.05.08 多模板文档视图结构的应用 一、概述 ①在一个MDI程序中,需要使用不同类型的子窗口,而每种类型窗口有可能有很多个,对应不
    多模板文档视图结构的应用
    自撰
    00.05.08

    多模板文档视图结构的应用

    一、概述

    ①在一个MDI程序中,需要使用到不同类型的子窗口,而每种类型窗口有可能有很多个,对应不同的数据。

    这时,可以使用多模板的文档视图结构。以利用文档视图结构带来的便利。

    ②建立某种类型的MDI子窗口时,调用对应文档模板的OpenDocumentFile()

    而其参数LPCTSTR lpszFileName可以作为建立MDI窗口时的参数

    ③在使用过程中,文档对象不一定要对应磁盘文件,而是根据需要定义成内部的数据结构。

    但MFC文档结构中,很多地方与实际文件相联系,因此,使用中,有些细节需处理。

    二、多文档文档模板的建立

    ①在应用程序类中建立多个文档模板指针作为成员数据

    例:

    CMultiDocTemplate * pCalcDocTemplate;

    CMultiDocTemplate * pDataDocTemplate;

    ②在应用程序类InitInstance中建立多个文档模板对象。

    每种文档模板对应不同的文档、视图类组合。

    例:

     pCalcDocTemplate = new CMultiDocTemplate(
      IDR_VFPTYPE,
      RUNTIME_CLASS(CVFPDoc),
      RUNTIME_CLASS(CChildFrame), // custom MDI child frame
      RUNTIME_CLASS(CVFPView));
     AddDocTemplate(pCalcDocTemplate);
     pDataDocTemplate = new CMultiDocTemplate(
      IDR_DATATYPE,
      RUNTIME_CLASS(CDataDoc),
      RUNTIME_CLASS(CDataChildFrame), // custom MDI child frame
      RUNTIME_CLASS(CDataListView));
     AddDocTemplate(pDataDocTemplate);
    

    ③在应用程序类中添加建立窗口的成员。

    例:

    CDocument * CXXXApp::OpenDataDocumentFile(LPCTSTR lpszFileName)
    {
     if(pDataDocTemplate)
      return pDataDocTemplate-> OpenDocumentFile(lpszFileName);
     else
      return NULL;
    }
    CDocument * CXXXApp::OpenCalcDocumentFile(LPCTSTR lpszFileName)
    {
     if(pCalcDocTemplate)
      return pCalcDocTemplate-> OpenDocumentFile(lpszFileName);
     else
      return NULL;
    }
    

    ④需要建立不同类型的MDI子窗口时,调用以上成员即可

    三、细节处理

    ①避免同一参数对应的MDI子窗口多次打开。

    在处理磁盘文件时,打开某一文件时,文档管理器会检查是否打开过,打开过,则激活已经打开的窗口。

    当自己调用文档模板的OpenDocumentFile打开时,这一检查被绕过了。

    但需要时,可以在自己的打开"文件"成员函数中添加相应代码(基本上是MFC原码的复制)。

    例:以上的OpenCalcDocumentFile可更改为:

    CDocument * CXXXApp::OpenCalcDocumentFile(LPCTSTR lpszFileName)
    {
     if(pCalcDocTemplate)
     {
      CDocument* pOpenDocument = NULL;
      pCalcDocTemplate-> MatchDocType(lpszFileName, pOpenDocument); //判断是否lpszFileName的窗口已经建立
      if (pOpenDocument != NULL)  //若已经建立过,则激活
      {
       POSITION pos = pOpenDocument-> GetFirstViewPosition();
       if (pos != NULL)
       {
        CView* pView = pOpenDocument-> GetNextView(pos); // get first one
        ASSERT_VALID(pView);
        CFrameWnd* pFrame = pView-> GetParentFrame();
        if (pFrame != NULL)
         pFrame-> ActivateFrame();
        else
         TRACE0("Error: Can not find a frame for document to activate./n");
        CFrameWnd* pAppFrame;
        if (pFrame != (pAppFrame = (CFrameWnd*)AfxGetApp()-> m_pMainWnd))
        {
         ASSERT_KINDOF(CFrameWnd, pAppFrame);
         pAppFrame-> ActivateFrame();
        }
       }
       else
       {
        TRACE0("Error: Can not find a view for document to activate./n");
       }
       return pOpenDocument;
      }
      else  //否则直接打开
       return pCalcDocTemplate-> OpenDocumentFile(lpszFileName);
      
     }
     else
      return NULL;
    }
    

    但改写后,发现某些情况下窗口还是被重复打开。原因是MatchDocType判断失误。

    在MatchDocType中,需要比较文档对象中保存的文件名和输入的文档名参数。

    但文档对象建立时,会对文档名取全路径,而以上作为参数的"文件名"被认为是相对路径而添加了目录名。比较时自然不相等了。

    好在MFC在设计时已经考虑了这些,文档类提供了虚函数SetPathName(LPCTSTR lpszPathName, BOOL bAddToMRU),

    在自己的文档类中,重载SetPathName,屏蔽其缺省实现,更改为:

    void CXXXDoc::SetPathName(LPCTSTR lpszPathName, BOOL bAddToMRU) 
    {
     m_strPathName = lpszPathName; //直接将传入名作为最后的文档名
     m_bEmbedded = FALSE; //模式(不是嵌入对象)
     SetTitle(lpszPathName); //设置标题(可具体更改)
    }
    

    当实际使用时,对每个文档模板,其OpenDocumentFile对要添加很多代码,很不方便, 这是,可以将共用部分建立成成员函数

    例:

    CDocument * CXXXApp::OpenWithTemplate(CMultiDocTemplate * pDocTemplate,LPCTSTR lpszFileName)
    {
     if(pDocTemplate)
     {
      CDocument* pOpenDocument = NULL;
      pDocTemplate-> MatchDocType(lpszFileName, pOpenDocument); //避免重复打开
      if (pOpenDocument != NULL)
      {
       POSITION pos = pOpenDocument-> GetFirstViewPosition();
       if (pos != NULL)
       {
        CView* pView = pOpenDocument-> GetNextView(pos); // get first one
        ASSERT_VALID(pView);
        CFrameWnd* pFrame = pView-> GetParentFrame();
        if (pFrame != NULL)
         pFrame-> ActivateFrame();
        else
         TRACE0("Error: Can not find a frame for document to activate./n");
        CFrameWnd* pAppFrame;
        if (pFrame != (pAppFrame = (CFrameWnd*)AfxGetApp()-> m_pMainWnd))
        {
         ASSERT_KINDOF(CFrameWnd, pAppFrame);
         pAppFrame-> ActivateFrame();
        }
       }
       else
       {
        TRACE0("Error: Can not find a view for document to activate./n");
       }
       return pOpenDocument;
      }
      else
       return pDocTemplate-> OpenDocumentFile(lpszFileName);
      
     }
     else
      return NULL;
    }
    

    展开全文
  • http: blog csdn net bboot article details 29375199 与这篇博客配套的资源哦
  • 我们以前见到的关于VC++环境下利用APP Wizard 自动生成的MDI的应用程序只支持打开同一文档类型的多个文件,但是不能够同时打开不同种类型的文档。网上的这种公开资料比较少,我在知网上查阅了相关的资料。下面我根据...

      我们以前见到的关于VC++环境下利用APP Wizard 自动生成的MDI的应用程序只支持打开同一文档类型的多个文件,但是不能够同时打开不同种类型的文档。网上的这种公开资料比较少,我在知网上查阅了相关的资料。下面我根据这些资料做一下总结辛辛苦苦一个一个字码出来的)。

    下面设计一个能够处理两种文档类型的应用程序:第一种文档类型:TXT文档,第二种文档类型:Bub的文档类型。

    第一种的文档类型TXT,是利用APP Wizard自动生成的,只不过是在设置的时候将文档类型设置为TXT类型,并且使生成的视图派生类继承与CEditView类。

    第二种文档类型Bub,这个类型是在生成的MDI程序中添加的自定义文档类型(下面会有相应的介绍).

    应用程序建立过程(最后会将相应的源码上传以供大家下载)注意下面的介绍是VC6.0为开发工具:

       1.首先使用APP Wizard建立一个MDI程序,注意在建立的过程中需要在第4步的Advanced Options对话框中设置文件的扩展名为txt;在第6步中将视图类的基类设置为CEditView.编译完成后,该应用程序就可以对文本文件进行相应的编辑了。

       2. 下面通过Insert/New Class 菜单选项为项目添加3个MFC派生类CBubDoc ,CBubView和CBubFrame类分别派生于CDocument ,CView和CMDIChildWnd.

          为CBubDoc类添加两个数据成员:

        CRect m_rectBubble[MAX_BUBLLE];
    int m_nBubbleCount;

          其中MAX_BUBLLE被定义为200;

      使用Class Wizard 为CBubDoc类添加DeleteContents()函数,并为其添加代码:

         m_nBubbleCount = 0;

    修改CBubDoc类的Serialize()函数并使之可以存取泡泡图形数据。

    if (ar.IsStoring())
    {
           ar<<m_nBubbleCount;
    for (int i = 0;i<m_nBubbleCount;i++)
    {
    ar<<m_rectBubble[i];
    }
    }
    else
    {
    ar>>m_nBubbleCount;
    for (int i = 0;i<m_nBubbleCount;i++)
    {
    ar>>m_rectBubble[i];
    }
    }

        在CBubView类头文件首部添加#include “BubDoc.h”并为CBubView类添加一个成员函数

            public:

         CBubDoc * GetDocument();

    在类声明的结束处添加以下代码:

    #ifndef _DEBUG
    inline CBubDoc * CBubView::GetDocument()
    {
    return (CBubDoc *) m_pDocument;
    }

    #endif

    在相应的类实现文件中添加以下代码:

    CBubDoc * CBubView::GetDocument()
    {
    ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CBubDoc)));
    return (CBubDoc *) m_pDocument;
    }

    修改CBubView类的OnDraw函数,使其可以显示泡泡图形。

    代码如下:

    void CBubView::OnDraw(CDC* pDC)
    {
    CBubDoc* pDoc = GetDocument();
    pDC->SelectStockObject(LTGRAY_BRUSH);
    for (int i =0;i<pDoc->m_nBubbleCount;i++)
    {
    pDC->Ellipse(pDoc->m_rectBubble[i]);
    }
    }

    使用Class Wizard为CBubView类添加鼠标左键按下的消息处理函数,并编辑代码如下:

    void CBubView::OnLButtonDown(UINT nFlags, CPoint point) 
    {
        CBubDoc * pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    if (pDoc->m_nBubbleCount<MAX_BUBLLE)
    {
    int r = rand()%50 + 10;
    pDoc->m_rectBubble[pDoc->m_nBubbleCount] = 
    CRect(point.x-r,point.y-r,point.x+r,point.y+r);
    InvalidateRect(pDoc->m_rectBubble[pDoc->m_nBubbleCount]); 
    pDoc->m_nBubbleCount++;
    }
    CView::OnLButtonDown(nFlags, point);
    }

      3.为新文档类型定义资源标识符IDR_BUBTYPE,该标识符用于新文档类型的所有资源,包括字符串资源,子框架窗口菜单和图标。

      4.在字符串资源中为新的文档类型添加新的字符串资源(标识符为IDR_BUBTYPE)

       如下:

         Bub程序界面\nBub\nBub\nBub文件(*.bub)\n.bub\nBub.Document\nBub Document

    相应的解释如下:

    \n 为分隔符:

    以下的字符按照上面的顺序依次介绍,大家可以一一对应的看:
     Bub程序界面 :应用程序窗口标题(仅对单文档界面有效)
    \nBub :文档类型
    \nBub  :文档名称(出现在选择文件对话框中的)
    \nBub文件(*.bub)  :文件名过滤器(出现在选择文件对话框中的)
    \n.bub  :文档扩展名
    \nBub.Document  :存储在系统注册表中的文档类型标识符
    \nBub Document  :存储在系统注册表中的文档类型

      5.编辑主框架窗口菜单资源。

            在文件子菜单中添加新类型文档的新建和打开选项。这两个菜单选项的标识符设置为ID_FILE_NEW_BUB和ID_FILE_OPEN_BUB,并且将原来的新建菜单选项的标识符改为ID_FILE_NEW_TXT.

      6.编辑主框架窗口的工具条资源。可以自行设置,不过标识符小一样哦。

      7.利用Insert/Resource为新的文档类型的子框架窗口添加菜单资源(标识符为IDR_BUBTYPE)。

         其中文件子菜单下的选项包括新建图形文档(ID_FILE_NEW_BUB),打开图形文档(ID_FILE_OPEN_BUB)和新建文本文档(ID_FILE_NEW_TXT),打开文本文档(ID_FILE_OPEN),关闭文档,保存文档,另存为和退出。

        其他的未列出来的标识符按照主框架的菜单设置,剩余的其他的菜单项按照主框架的菜单设置。

      8.为新建的文档类型添加图标资源(标识符IDR_BUBTYPE)

      9.在应用程序派生类中找到相应的InitInstance()函数,添加以下代码设置新的文档模板;

            CMultiDocTemplate* pBubTemplate;
    pBubTemplate = new CMultiDocTemplate(
    IDR_BUBTYPE,
    RUNTIME_CLASS(CBubDoc),
    RUNTIME_CLASS(CBubFrame), 
    RUNTIME_CLASS(CBubView));
    AddDocTemplate(pBubTemplate);

    并在调用ProcessShellCommand(cmdInfo)之前添加如下代码:

    //主要是在应用程序的建立的时候不建立任何类型的文档。

    cmdInfo.m_nShellCommand = CCommandLineInfo.FileNothing;

    在应用程序的派生类的头部添加以下代码:

    #include "BubDoc.h"
    #include "BubFrame.h"
    #include "BubView.h"

    并使用Class Wizard 创建ID_FILE_NEW_BUB ,ID_FILE_OPEN_BUB和ID_FILE_NEW_TXT的消息响应函数。

    响应函数的代码如下:

    void CMultiDoctempApp::OnFileNewTxt() 
    {
    POSITION curTemplatePos = GetFirstDocTemplatePosition();
    while (curTemplatePos != NULL)
    {
    CDocTemplate * curTemplate = GetNextDocTemplate(curTemplatePos);
            CString str;
    curTemplate->GetDocString(str,CDocTemplate::docName);
    if (str == _T("Txt"))
    {
    curTemplate->OpenDocumentFile(NULL);
    return;
    }
    }
    AfxMessageBox("NO TXTTEMPALTE!");
    }

    void CMultiDoctempApp::OnFileNewBub() 
    {
    POSITION curTemplatePos = GetFirstDocTemplatePosition();
    while (curTemplatePos != NULL)
    {
    CDocTemplate * curTemplate = GetNextDocTemplate(curTemplatePos);
            CString str;
    curTemplate->GetDocString(str,CDocTemplate::docName);
    if (str == _T("Bub"))
    {
    curTemplate->OpenDocumentFile(NULL);
    return;
    }
    }
    AfxMessageBox("NO BUBTEMPALTE!");
    }

    void CMultiDoctempApp::OnFileOpenBub() 
    {
    POSITION curTemplatePos = GetFirstDocTemplatePosition();
    while (curTemplatePos != NULL)
    {
    CDocTemplate * curTemplate = GetNextDocTemplate(curTemplatePos);
            CString str;
    curTemplate->GetDocString(str,CDocTemplate::docName);
    if (str == _T("Bub"))
    {
     CFileDialog dlg(true);
     if (dlg.DoModal() == IDOK)
     {
     CString path = dlg.GetPathName();
     curTemplate->OpenDocumentFile(path);
     }
              return;
    }
    }
    AfxMessageBox("NO TXTTEMPALTE!");
    }

    以上的介绍就是VC++环境下多文档模板应用程序开发的一个小例子。希望能够帮助到大家。

    该篇文章参考知网上的论文资料本人总结所得。
    源码的下载地址:http://download.csdn.net/my


          



    展开全文
  • 行业文档-设计装置-一种建筑模板固定结构及其应用方法.zip
  • WRDS 超轻量级的Web应用程序,用于快速,模板化的文档创建。 了解有关此项目的信息 我在针对该Web应用程序编写了一篇文章。
  • 遍历应用程序的视图,文档,文档模板

    千次阅读 2006-04-07 16:23:00
    void EnumAllView(CDocument*pDoc)//遍历文档关联的视图{ POSITION pos=pDoc->GetFirstViewPosition(); while (pos) { CView*pView=pDoc->GetNextView(pos); /**/ }}void EnumAl
  • 应用word模板生成word文档,通过在模板中定义标签,生成时。可在代码中灵活设置标签内容,设置样式
  • http://blog.sina.com.cn/s/blog_69b6a7c60100wbil.html
  • Beetl页面模板文档

    万次阅读 2017-12-28 17:04:53
    Beetl2.7 中文文档Beetl作者:李家智 xiandafu@126.com
  • Python之web模板应用

    2021-01-20 04:51:30
    Python的web模板,其实就是在HTML文档中使用控制语句和表达语句替换HTML文档中的变量来控制HTML的显示格式,Python的web模板可以更加灵活和方便的控制HTML的显示,而且大大地减少了编程人员的工作量。 模板语法: 1...
  • 软件开发文档模板

    万次阅读 多人点赞 2018-08-13 15:55:49
    中提供了文档的编写模板供开发者参考,在进行具体软件开发时,开发者可根据实际情况采编写,但必须提供双方约定的文档文档中约定的内容必须描述清楚。 2.  总体要求 2.1  总体功能要求 网络应用环境以 ...
  • 模板修改操作 前面学习了模板结构和建立新模板目录 ,下面我们学习下如何修改和应用模板 修改要有对应的模板 然后按照前面的方法建立本地站点,再开始修改 首先是修改前台的头部尾部文件: 打开后 这里是页面调用的样式...
  • 软件架构文档模板

    2018-04-03 14:44:50
    软件架构设计文档模板,如何做架构设计、系统设计(概要设计、详细设计和数据库设计),以及需要有那些规范和参考模板
  • 行业文档-设计装置-一种应用于监控系统中支持脚本的动态模板实现方法.zip
  • pmp 考试,pmp 文档模板, pmp国际应用实际案例,欢迎大家下载学习。
  • 这块文档是最近搜集的一大部分软件项目文档,里面也增加了一下自己的一些文档,适合软件项目管理人员学习和参考用。也适合项目在整个实施过程中使用。
  • 尽管模板的许多内容都是专门为应用程序开发人员量身定制的,但由于项目工作的要求基本匹配,因此模板还应该引起其他IT专业人员的兴趣(IT专家系统集成,IT销售员等)。 有关基于此模板的更多信息和示例文档,请参见...
  • 架构设计文档模板

    千次阅读 2019-02-02 11:09:21
    备选方案模板 1.需求介绍 [需求介绍主要描述需求的背景、目标、范围等] 随着XX微博业务的不断发展,业务上拆分的子系统越来越多,目前系统间的调用都是同步调用,存在如下问题: 性能问题:当用户发布了一条微博后...
  • 针对您的应用程序的完全可自定义的API文档HTML模板。 学分 jQuery 1.8.2 Google字体(Roboto | Source + Code + Pro) Highlight.js 9.8.0 创意项目徽标:Noun Project的Emily van den Heever设计的平台。 ...
  • 2011最新的软件工程文档模板及规范,包括移动应用,web开发等的管理规范和案例文档(东软、华信、海辉)。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 217,164
精华内容 86,865
关键字:

怎样把模板应用到其他文档