只知道有个MSWORD.OLB,但具体里面的类,以及类里面提供的方法如何使用有没有什么地方能够学习的,我看网上的一些例子程序看得不太明白,有没有相关的资料呢?

解决方案 »

  1.   

    项目->添加类->TypeLib中的MFC类,然后选择OFFICE目录中的MSWORD.OLB 一加入会出现一大堆类。
    添加CApplication CSelection CDocuments三个类.实现如下: #include "stdafx.h" 
    #include "wordtest.h" 
    #include "wordtestDoc.h" 
    #include "wordtestView.h" #include "CApplication.h"  
    #include "CSelection.h" 
    #include "CDocuments.h" #include <AtlBase.h> void CwordtestView::OnTestStep1() 

    // TODO: 在此添加命令处理程序代码 
    CApplication TestWordDoc;  //定义一个WORD的应用对象 
    if(!TestWordDoc.CreateDispatch(_T("Word.Application"))) //启动WORD 

    AfxMessageBox(_T("居然你连OFFICE都没有安装吗?")); 
    return; 

    AfxMessageBox(_T("WORD 已经运行启动啦,你可以用Ctrl+Alt+Del查看")); 
    TestWordDoc.put_Visible(VARIANT_TRUE);  //设置word可见,对应office2003的msword.olb 
    //TestWordDoc.SetVisible(TRUE); //设置WORD可见。对应老版本msword.olb 
    //当然,如果你想要悄悄地调用WORD的功能,则注释掉这条语句 AfxMessageBox(_T("看好了,就要新建一个空白文档了")); 
    //通过WORD宏可以知道,由于要使用Documents,于是我们定义一个并从TestWordDoc中取得 
    CDocuments docs=TestWordDoc.get_Documents(); 
    //准备调用Documents::Add函数了,需要定义4个参数。 
    //从WORD宏可以看出来3个参数的类型为: 
    //Template字符,NewTemplate布尔,DocumentType数值 
    //但Add函数还需要一个参数是Visible,傻子也能看出来这个值表示是否显示出新文档 
    //并且可以给默认值(VT_EMPTY) 
    CComVariant Template(_T("")); //为了简单,没有使用WORD的文档模板 
    CComVariant NewTemplate(false),DocumentType(0),Visible; 
    docs.Add(&Template,&NewTemplate,&DocumentType,&Visible); AfxMessageBox(_T("下面,程序要向WORD发送字符啦")); 
    //通过WORD宏可以知道,由于要使用Selection,于是我们定义一个并从app中取得 
    //Selection表示输入点,即光标闪烁的那个地方 
    CSelection sel=TestWordDoc.get_Selection(); //调用函数Selection::TypeText 向WORD发送字符 
    sel.TypeText(_T("HELLO\r\n大家好呀")); 
    sel.TypeParagraph(); 
    sel.TypeParagraph(); 
    sel.TypeText(TEXT("lasdflj")); AfxMessageBox(_T("WORD准备要退出啦")); 
    //以下一段是不用#include <AtlBase.h>时退出要做的。如果用#include <AtlBase.h>就不用了。 
    //VARIANT SaveChanges,OriginalFormat,RouteDocument; //定义调用QUIT时使用的参数 
    //SaveChanges.vt=VT_BOOL; //设置退出WORD时候的保存参数 
    //SaveChanges.boolVal=VARIANT_FALSE; //为不保存任何文档,模板及设置 //::VariantInit(&OriginalFormat); //清空变量 
    //RouteDocument.vt=VT_EMPTY; //清空变量的另一种方法 
    //准备调用_Application::Quit函数了,需要定义3个参数。 
    //但是,这次我们使用CComVariant,这是一个模板类。 
    //在定义的时候直接调用带参数的构造函数,比VARIANT使用简单多了吧 
    CComVariant SaveChanges(false),OriginalFormat,RouteDocument; 
    //使用 CComVariant 的不带参数的构造函数,默认就是使用VT_EMPTY,设置为空类型 
    //另外,除了CComVariant,你还可以使用COleVariant和_variant_t,但我个人最喜欢前者 //调用Quit退出WORD应用程序。当然不调用也可以,那样的话WORD还在运行着那 
    TestWordDoc.Quit(&SaveChanges,&OriginalFormat,&RouteDocument); TestWordDoc.ReleaseDispatch(); //释放对象指针。切记,必须调用 }
      

  2.   


    问一下,word2000  与word2003 编程方法是一样的吗?
      

  3.   

    我用的VC,要用VC往WORD里写表格,有相关的资料吗
      

  4.   

    熟悉OLE自动化,参考Word自带的VBA编程帮助(对象及关系)
      

  5.   


    Word自带的VBA编程帮助在哪里能找到?我怎么找不到
      

  6.   

    当然是在Word中了,不过一般缺省安装Office的时候都不选上,自己选一下。然后在Word中按下Alt+F11进入脚本编辑器,查看帮助。
      

  7.   

    可以从网上下载一个Word VBA参考手册