请问怎样用VC++在生成的WORD文档里画线?

解决方案 »

  1.   

    1.画线过程中WORD一直处于不可见状态?
    2.WORD由VC++生成?还是打开已有的?
    3.画完之后,直接保存、关闭,其过程WORD不可见?
      

  2.   

    由VC直接生成WORD文档,绘出图形.均不可见,自动完成.
      

  3.   

    问题已经解决,方法如下:
    在你的程序里空白处用鼠标右键点击打开: 建立类向导->Add Class…->From a type library…->选择MSWORD9.OLB文件,然后依次填加: APPLication,_Document,Documents,Selection,Shapes五个类, 最后在调用的文件中包含#include"msword9.h"头文件即可。示例代码如下:COleVariant vtrue((short)true),
                   vfalse((short)false),
                   vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
    //开始一个新的Microsoft Word 2000实例
    _Application oWordApp;
    if (!oWordApp.CreateDispatch("Word.Application", NULL))
    {
        AfxMessageBox("创建Word2000文档失败!", MB_OK | MB_SETFOREGROUND);
        return;
    }
    //创建一个新的word文档
    Documents oDocs; _Document oDoc;
    oDocs = oWordApp.GetDocuments();
    oDoc = oDocs.Add(vOpt, vOpt, vOpt, vOpt);  
    //如果是word 98,则应该带两个参数,如oDocs.Add(vOpt, vOpt)
    //把文本添加到word文档
    Selection oSel; 
    oSel = oWordApp.GetSelection();
    oSel.TypeText(“输出示例字符”);
    // 画线
    Shapes shp; shp=oDoc.GetShapes();
    shp.AddLine(100,100,200,200,vOpt);
    //保存word文档
    CString filename=“c:\\123.doc”;
    _Document oActiveDoc;
    oActiveDoc = oWordApp.GetActiveDocument();
    oActiveDoc.SaveAs(COleVariant(filename), 
    COleVariant((short)0),
    vfalse, COleVariant(""), vtrue, COleVariant(""),
    vfalse, vfalse, vfalse, vfalse, vfalse);
    //退出word应用程序
    oWordApp.Quit(vOpt, vOpt, vOpt);
    MessageBox(filename,"已生成");