VC操作WORD技巧总结

以下是我项目中用到的一些代码和总结,一看就会明白如何操作WORD。不再对其赘述。 // TODO: 在此添加控件通知处理程序代码 //const int wdPreferredWidthPoints = 3; //此函数的功能是根据给定的程序标识符从注册表找出对应的类标识符 CLSIDFromProgID(L"Word.Application", &clsid); //查看是否有已经打开的Word对象 hr = ::GetActiveObject(clsid, NULL, (IUnknown**)&pUnk); if (SUCCEEDED(hr)) // 若有word在运行,就得到当前运行word的实例 { //hr = pUnk->QueryInterface(IID_IDispatch, (void**)&pDisp); //wordApp.AttachDispatch(pDisp, TRUE); //pUnk->Release(); AfxMessageBox("请关闭其他WORD再进行WORD报表打印!"); return; } else //若无,则新建一个Word对象 { if (!wordApp.CreateDispatch(_T("Word.Application"))) { AfxMessageBox("Create Dispatch failed!"); return; } } HWND hwnd; wordApp.SetVisible(TRUE); //设置WORD可见 wordApp.SetWindowState(1); //设置窗口最大化 wordDocs = wordApp.GetDocuments(); CComVariant tpl(_T("")), Visble, DocType(0), NewTemplate(false); wordDoc = wordDocs.Add(&tpl, &NewTemplate, &DocType, &Visble); wordSel = wordApp.GetSelection(); // //hwnd = ::FindWindow("OpusApp", 0); //根据类名查找,不过好像有几个窗口 hwnd = ::FindWindow(0, "文档 1 - Microsoft Word"); //根据窗口标题查找 //禁用WORD窗口,防止用户中途操作WORD ::EnableWindow(hwnd, FALSE); //设置标题字体大小 wordFont = wordSel.GetFont(); wordFont.SetNameFarEast("楷体_GB2312"); wordFont.SetSize(20); //设置对其方式 wordPars = wordSel.GetParagraphFormat(); wordPars.SetAlignment(1); wordSel.TypeText("表格1"); wordSel.TypeParagraph(); //字体还原 wordFont.Reset(); wordTables = wordDoc.GetTables(); wordRange = wordSel.GetRange(); wordTable = wordTables.Add(wordRange, 100+1, 5, &vtMissing, &vtMissing); //去掉表格的“自动重调尺寸以适应内容”项,这样可以手动设置表格的行高和列宽 wordTable.SetAllowAutoFit(FALSE); //设置表格宽度的单位wdPreferredWidthPoints是WORD通用的属性,在VB中可以直接用, //在VC中最好在调用Word开头进行定义const int wdPreferredWidthPoints = 3; //wordTable.SetPreferredWidthType(wdPreferredWidthPoints); //wordTable.SetPreferredWidth(50); //设置表格宽度 wordColumns = wordTable.GetColumns(); //获得表格列属性 //wordColumns.SetPreferredWidthType(wdPreferredWidthPoints); //设置表格列宽的单位 //wordColumns.SetPreferredWidth(10); //设置表格列宽 int colCount = wordColumns.GetCount(); float tmp = wordColumns.GetWidth(); for (int i = 1; i <= colCount; i++) { wordColum = wordColumns.Item(i); switch (i) { case 2: wordColum.SetWidth(tmp+4*10); break; default: wordColum.SetWidth(tmp-10); break; } } //写表格1操作 //…… //完毕后使WORD窗口可用 ::EnableWindow(hwnd, TRUE); //最后释放相关资源

好了,到此VC操作WORD的大部分功能已经学会了。

你可能感兴趣的:(VC操作WORD技巧总结)