一、首先在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(); //釋放應用程式類對象。
//*****************************************************************
大功告成。核心代碼已給出,如有其他調試問題,自己解決,(*^__^*) 嘻嘻……。good luck。