我重新产生新的msword文件,我用的OfficeXP。当我添加picture的时候::    CComVariant LinkToFile(false), SaveWithDocument(true);
    CComVariant Range;
    InlineShapes shapes = sel.GetInlineShapes();
    shapes.AddPicture(m_strImageName, &LinkToFile, &SaveWithDocument, &Range);编译通过,执行时候提示“类型不匹配”。
我不知道最后一个参数Range应该如何添入!!!其应该指定的是一个范围说明图片在Word中的大小。thanks~~~

解决方案 »

  1.   

    COleVariant vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
      

  2.   

    _Application WordApp;
    Documents docs;
    _Document doc,doc1
    COleVariant covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
             ...
    Shapes shs;
    shs=doc.GetShapes();
    shs.AddPicture("skybox_bottom.bmp",covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional);
      

  3.   

    为什么是用Shapes的AddPicture而不是InlineShapes的AddPicture??
    因为我看宏代码是:
    Selection.InlineShapes.AddPicture FileName:= _
    "C:\Documents and Settings\***\Desktop\mshearts.bmp", LinkToFile:= _
            False, SaveWithDocument:=True kingzai() ( )的代码的确可行,但是不是我的初衷。是不是用InlineShapes的AddPicture不行??
    还有,你的这样的代码,那如何限定添加图片的初始尺寸??Thanks~~~~
      

  4.   

    这应该算ATL的问题吧,怎么放这呢
      

  5.   

    _Application m_oWordApp;
    m_oWordApp.AttachDispatch(pDisp);
    Selection oSel;
    oSel.AttachDispatch(m_oWordApp.GetSelection());
    InlineShapes oInline;
    oInline.AttachDispatch(oSel.GetInlineShapes());
    LPCTSTR strFilePath="C:\\001.jpg";
    COleVariant vFalse((short)FALSE);
    COleVariant vTrue((short)TRUE);
    VARIANT vRang;
    vRang.vt=VT_DISPATCH;
    vRang.pdispVal=oSel.GetRange();
    oInline.AddPicture(strFilePath,vTrue,vFalse,&vRang);
    ::CoUninitialize();
      

  6.   

    OK! Good!! 这样的代码正是实现插入图片的InlineShapes的AddPicture方法!!
    谢谢!!!但是,问题是:为什么我在观看宏代码的时候,看不到 VARIANT vRang; 的赋值部分???
    对于没有在宏代码中出现的参数,如何得知其应该填写的类型和值??Thanks~~~
      

  7.   

    VBA的代码写法和VC的写法不太一样的。一般可以参照MSDN automation word(VC)系列的文章,如果找不到就自己在代码中实践了。
      

  8.   

    我在MSDN中找到Automating Word Using the Word Object Model部分!
    并没有发现这方面的说明,如果我不知道具体应该到哪儿去查找。那岂不是每次都要来请教您??现在的问题是::
    如何在Word中添加条型图以及饼状图?并提供修改图形(文本、数值)的接口。Thanks~~~
      

  9.   

    Selection oSelection;
    oSelection = oApp.GetSelection();//oApp指你的word应用实例
    InlineShapes oInlineShapes;
    oInlineShapes = oSelection.GetInlineShapes();
    oInlineShapes.AddOLEObject(COleVariant("MSGraph.Chart.8"), vOpt,  vFalse,
    vFalse, vOpt, vOpt, vOpt, vOpt);//
    you can find your answer in google ,codeguru,msdn