在MFC中嵌入Word

2021-04-08 19:32:22 字數 1223 閱讀 4843

摘要正文

一、引言

microsoft office辦公套件以其功能強大、方便實用而被廣泛使用。我們可以使用自動化作為word用以把其功能顯露給其他應用的方式,採用這種方式可以盡可能少的占用自動化客戶的資源,並且不需要被訪問物件的型別資訊就可以進行呼叫。

二、建立工程

以下是建立這個mfc應用程式的步驟:

(2)選擇單文件檢視(sdi)結構,在第3步中需要選中container,以提供容器支援。 其它都為預設。在classview中將產生如下類:

框架類: cmainframe in mainfrm.h and mainfrm.cpp

文件類: cembed_worddoc in embed_worddoc.h and embed_worddoc.cpp

檢視類: cembed_wordview in embed_wordview.h and embed_wordview.cpp

容器類: cembed_wordcntritem in cntritem.h and cntritem.cpp

(3)在view選單中,選classwizard,選automation選項卡,選add class,選擇from a typelibrary, 在office目錄中選中microsoft word 97/2000 型別庫word8.olb或word9.olb,會將把型別庫中的所有類新增到你的工程中。這時,classview中會多出幾十個類,可以通過這些類提供的介面來實現必要的功能。

(4)在ccntritem.h中新增獲取標準com介面idispach的函式:

通過此函式來返回標準com介面idispatch。

(5)在embed_wordview.cpp中新增對"msword8.h"的引用:#include "msword8.h",如使用word2000,則包含對"msword9.h"的引用。 然後在視類cembed_wordview中新增函式embedautomateexcel():

(6)為了在程式剛啟動時便將word嵌入到程式中來,還需在視類的oninitialupdate()函式中新增**:

(7)為了使嵌入的工作區佔滿整個客戶區可以通過修改ondraw函式來實現:

三、編譯執行

編譯執行該程式,當程式啟動時便會試圖啟動word自動化服務,這時滑鼠會處於等待狀態,當滑鼠恢復正常狀態時,word以經被嵌入到了程式中來,工具條和選單上會多出許多word上的工具條和選單,並可以使用word的這些功能來為我們服務。  

mfc中dialog中嵌入view

在dialog oninitdialog中加入 cwnd pframewnd this ccreatecontext pcontext pcontext.m pcurrentdoc 0 new ctest doc pcontext.m pnewviewclass runtime class c2 c...

在word中製作書籤

書籤用於標識由您指定和標識的位置或選定文字,以供將來引用。例如,您可以用書籤來標識需要在以後進行修訂的文字。使用 書籤 對話方塊可以直接定位到相應文字,不需要在文件中上下滾動。您還可以為書籤新增交叉引用。例如,在文件中插入書籤後,可以建立該書籤的交叉引用從而在文字的其他位置引用該書籤。新增書籤 選擇...

將Word嵌入到自己的程式中

最近在寫乙個程式,根據使用者的要求,需要將在程式中開啟word 就是將word嵌入到程式當中。net本身沒有提供這方面的容器控制項,需要用第三方的。在網上搜了一下,還真不少,但多數是要收費的,免費的很少。有個dsoframer,雖說免費,但非常不好用,bug很多,需要自己動手修改,但原始碼又是用c ...