描述:
当WORD已经启动时,并打开了几个文件,我想在其中的一个打开的WORD文件的光标位置插入一幅BMP。
if(!WordApp.CreateDispatch("Word.Application",NULL))//创建一个新的word程序
{
AfxMessageBox("创建ms_word服务失败");
exit(1);
}
//让用户能够查看自动化的过程
WordApp.SetVisible(true);
//让docs和word程序连接,docs代表word中所有文档
docs=WordApp.GetDocuments();
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
//用docs来打开一个文档,并将句柄返回给doc
//doc=docs.Add(COleVariant("C:\\ox.doc"),covOptional,covOptional,covOptional);
//这里要查找我要加入的WORD文件是否打开
//怎么样在当前光标处加入文件.
//
解决方案1:
1.得到ActivateDocument
2.得到ActivateDocument中的Shapes
3.调用Shapes的方法: AddPicture
只要指定图片文件名,就可以加入图片了。
InlineShapes_Word m_WordInlineShapes;
InlineShape_Word m_WordInlineShape;
Selection_Word m_WordSelection;
m_WordSelection=m_WordApp.GetSelection();
m_WordInlineShapes=m_WordSelection.GetInlineShapes();
COleVariant vTrue((short)TRUE),vFalse((short)FALSE),vOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
//AfxMessageBox(m_UnitName,MB_ICONINFORMATION);
m_WordInlineShape=m_WordInlineShapes.AddPicture(m_UnitName,vFalse,vTrue,vOptional);
/*
//2003.11.29 Add By DigitalTitan[设置图元重叠属性]
Shape_Word m_WordShape;
m_WordShape=m_WordInlineShape.ConvertToShape();
WrapFormat_Word m_WordWrapFormat;
m_WordWrapFormat=m_WordShape.GetWrapFormat();
//m_WordWrapFormat.SetAllowOverlap(TRUE);3
m_WordWrapFormat.ReleaseDispatch();
m_WordShape.ReleaseDispatch();
//
*/