From boitboy on 2014-11-24 11:04:16
用VC向Word中插入图片的方法
VC++6.0向Word文件的指定位置上插入一张图片,需要用到nlineShapes类型的AddPicture方法。
在MSDN中,该方法的声明如下:
**************************************************************************
在文档中添加一幅图片。返回一个 Shape 对象,该对象代表图片,并将其添加至 InlineShapes 集合。
expression.AddPicture(FileName, LinkToFile, SaveWithDocument, Range) expression 必需。该表达式返回一个 InlineShapes 对象。
FileName String 类型,必需。图片的路径和文件名。
LinkToFile Variant 类型,可选。如果为 True,则将图片链接到创建该对象的文件;如果为 False,则将图片作为该文件的独立副本。默认值是 False。
SaveWithDocument Variant 类型,可选。如果为 True,则将链接的图片与文档一起保存。默认值是 False。
Range Variant 类型,可选。图片置于文本中的位置。如果该区域未折叠,那么图片将覆盖此区域,否则插入图片。如果忽略此参数,则自动放置图片
**************************************************************************
根据该说明的定义,第四个参数Range是用来设置图片位于文本中的位置的。因此,我们可以利用该参数向某一指定位置插入图片。具体方法如下:
Selection sel=m_app.GetSelection();//获取文档的selection InlineShapes inlineshapes = sel.GetInlineShapes(); inlineshapes.AddPicture("D:\\cjdz.bmp",COleVariant((short)FALSE),COleVariant((short)TRUE),&_variant_t(sel.GetRange()));//添加图片,并制定其位置为当前光标位置 inlineshapes.ReleaseDispatch(); sel.ReleaseDispatch();
注意上面第四个参数的转换方法,用到了_variant_t变量,使用此种方法可以将LPDISPATCH转换成VARIANT*类型
如此就可将图片直接插入到光标当前所在位置
本文来自CSDN博客,转载请标明出处:
http://blog.csdn.net/halin1983/archive/2009/09/08/4533112.aspx