3,245
社区成员
发帖
与我相关
我的任务
分享
LPDISPATCH AddTextEffect(long PresetTextEffect, LPCTSTR Text, LPCTSTR FontName, float FontSize, long FontBold, long FontItalic, float Left, float Top, VARIANT * Anchor)
{
LPDISPATCH result;
static BYTE parms[] = VTS_I4 VTS_BSTR VTS_BSTR VTS_R4 VTS_I4 VTS_I4 VTS_R4 VTS_R4 VTS_PVARIANT;
InvokeHelper(0x12, DISPATCH_METHOD, VT_DISPATCH, (void*)&result, parms, PresetTextEffect, Text, FontName, FontSize, FontBold, FontItalic, Left, Top, Anchor);
return result;
}
void CWordComAppDlg::OnBnClickedButtonWord()
{
CApplication0 m_App;
CDocuments0 m_Docs;
//定义变量
COleVariant vNull(L"");
COleVariant varTrue(short(1), VT_BOOL);
COleVariant varFalse(short(0), VT_BOOL);
COleVariant vT(SHORT(TRUE)), vF(SHORT(FALSE));
COleVariant vE(_T(""));
COleVariant v0(SHORT(0)), v1(SHORT(1)), v2(SHORT(2)), v5(SHORT(5)), v6(SHORT(6)), v12(SHORT(12)), v22(SHORT(22));
if (!m_App.CreateDispatch(_T("Word.Application"), NULL))
{
return;
}
//界面不可见
m_App.put_Visible(FALSE);
m_Docs = m_App.get_Documents();
m_Docs.AttachDispatch(m_App.get_Documents());
m_Docs.Open2000(COleVariant(L"C:\\aaa.doc"), varFalse, varFalse, varFalse, vNull, vNull, varFalse, vNull, vNull, varTrue, varTrue, varTrue);
CDocument1 doc0 = m_App.get_ActiveDocument();
CSelection0 select = m_App.get_Selection();
////写入文本
//select.TypeText(L"hello world !\n");
//
////选择表格
//CTables1 tabs = doc0.get_Tables();
//CTable1 tab1 = tabs.Item(1);
//CCell0 cell = tab1.Cell(1, 2);
//cell.Select();
//select.TypeText(L"1,2");
//cell = tab1.Cell(2, 1);
//cell.Select();
//select.TypeText(L"2,1");
//增加水印文字
CHeaderFooter headfooter = select.get_HeaderFooter();
CShapes shapes = headfooter.get_Shapes();
shapes.AddTextEffect(2,_T("hello"),_T("新宋体"),40,FALSE, FALSE, 0,0, NULL);
//shapes.AddTextEffect(2, CComBSTR(L"hello").m_str, CComBSTR(L"新宋体").m_str, 40, FALSE, FALSE, 0, 0, &vNull);
doc0.Save();
shapes.ReleaseDispatch();
headfooter.ReleaseDispatch();
select.ReleaseDispatch();
//cell.ReleaseDispatch();
//tabs.ReleaseDispatch();
//tab1.ReleaseDispatch();
doc0.ReleaseDispatch();
m_Docs.ReleaseDispatch();
m_App.Quit(vF, vF, vF);
m_App.ReleaseDispatch();
}