描述:
我想让图片就插入在当前位置,但是它始终跑到最前面去,不知道怎么回事?
这是代码.
//Commonly used variants.
COleVariant vTrue((short)TRUE),
vFalse((short)FALSE),
vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
//Start a new instance of Microsoft Word
_Application oWordApp;
if (!oWordApp.CreateDispatch("Word.Application", NULL))
{
AfxMessageBox("为什么不能创建.",
MB_OK | MB_SETFOREGROUND);
return;
}
try
{
//Create a new document
Documents oDocs;//代表一个WORD程序里的所有文档
_Document oDoc;//代表一个文档
oDocs = oWordApp.GetDocuments();
oDoc = oDocs.Add(vOpt, vOpt,vOpt, vOpt);
//Add text to the document
Selection oSel;
oSel = oWordApp.GetSelection();
oSel.TypeText("onetaotao");
oSel.TypeParagraph();
oSel.TypeText("twotaotao");
oSel.TypeParagraph();
oSel.TypeText("threetaotao");
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
Shapes shps;//表示word中的所有图片
Shape shp;//表示word中的某张图片
shps=oDoc.GetShapes();//得到文档中的所有图片
//加入一张图片
Paragraph paragraph;//用来表示文档中某一段
Paragraphs paragraphs;//用来表示文档中所有段
paragraphs=oDoc.GetParagraphs();
// paragraph=paragraphs.Item(3);//得到第n段,以插入到某段上
shps.AddPicture("f:\\0001.jpg",covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional);
//图片插入之后,反而在onetaotao,twotaotao,threetaotao的前面,这是怎么回事
//Save the document
_Document oActiveDoc;
oActiveDoc = oWordApp.GetActiveDocument();
oWordApp.SetVisible(TRUE);
oActiveDoc.SaveAs(COleVariant("e:\\mydoc2.doc"),
COleVariant((short)0),
vFalse, COleVariant(""), vTrue, COleVariant(""),
vFalse, vFalse, vFalse, vFalse, vFalse);
}
catch(COleException *e)
{
LPVOID lpMsg;
::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS, NULL, e->m_sc,
MAKELANGID(LANG_NEUTRAL,
SUBLANG_DEFAULT),(LPTSTR) &lpMsg,
0, NULL);
::MessageBox(NULL, (LPCTSTR)lpMsg, "COM Error",
MB_OK | MB_SETFOREGROUND);
::LocalFree( lpMsg );
}
catch(COleDispatchException *e)
{
char msg[512];
sprintf(msg, "Run-time error '%d':\n\n%s",
e->m_scError & 0x0000FFFF, e->m_strDescription);
::MessageBox(NULL, msg, "Server Error",
MB_OK | MB_SETFOREGROUND);
}
//Quit the application
oWordApp.Quit(vFalse, vOpt, vOpt);
这就这点分,大家帮忙呀!谢谢