一、首先在VC下建立简单的对话框程序,然后打开类向导,点右边的Add Class-》from a library,找到word的封装类库,一般在C:/Program Files/Microsoft Office/Office12(我的是word2007),里面有MSWORD8.OLB或MSWORD9.OLB(我的是MSWORD.OLB),打开,选其中的_Application、Documents、 _Document、Selection四个类。
二、然后在用到的.h或.cpp里面添加#include "msword.h",#include "atlbase.h"和#include "comdef.h"。然后在程序的initInstance函数里加入
/*初始化COM组件,此处为msword*/
if(!AfxOleInit())
{
AfxMessageBox("Could not initialize COM services");
return FALSE;
}
准备工作结束。
下面的代码写在窗体的OnInitDialog() 函数里面。(里面的IDC_RICHEDIT1为CRichEditCtrl)
_Application m_App; //Word应用程序对象
Documents m_Docs; //Word所有文档对象
_Document m_doc; //Word文档对象
Selection m_Slection; //文档选择对象
COleVariant vTrue((short)TRUE),
vFalse((short)FALSE),
vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
//**************************************************************
try
{
if(!m_App.CreateDispatch(_T("Word.Application"))) //启动Word
{
AfxMessageBox(_T("请检查是否安装了Office"));
return FALSE;
}
m_App.SetVisible(false);
m_Docs = m_App.GetDocuments();
CComVariant Template(_T(""));
CComVariant NewTemplate(false),DocumentType(0),Visible;
m_doc=m_Docs.Open(COleVariant("C://remotecaptureguide.doc"),vFalse,vTrue,vFalse,vOpt,vOpt,
vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt); //打开已有word文档
//m_doc=m_Docs.Add(&Template,&NewTemplate,&DocumentType,&Visible); //添加新的空白文档
}
catch(_com_error &e)
{
MessageBox(e.ErrorMessage());
}
//读取文本
m_Slection=m_App.GetSelection();//Word文档光标输入点
m_Slection.GetSections(); //获取光标点
m_Slection.WholeStory(); //对当前文档全选
SetDlgItemText(IDC_RICHEDIT1,m_Slection.GetText()); //设置文本内容
//销毁对象
m_Slection.ReleaseDispatch(); //释放selection对象
m_Docs.ReleaseDispatch(); //释放Documents对象
m_doc.Close(vOpt,vOpt,vOpt);
m_doc.ReleaseDispatch(); //释放Document对象
m_App.Quit(vOpt,vOpt,vOpt);
m_App.ReleaseDispatch(); //释放应用程序类对象。
//*****************************************************************