gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

VC寫word 用VC寫word文件方法

VC寫word 用VC寫word文件方法,我們在工作中會遇到很多問題,像VC寫word這類問題應該大家也都遇到過吧,今天這篇VC寫word 用VC寫word文件方法的文章,專門為你解答了這個問題,相信你看完后一定會收獲很多!

問題:您能給我介紹點用Visual C++ 動態生成WORD文檔資料嗎?給個例子代碼什么的。解答:一:

以下是創建這個MFC應用程序的步驟:(1)使用AppWizard創建一個新的MFC AppWizard(EXE)工程,命名為"Embed_Word"(2)選擇單文檔視圖(SDI)結構,在第3步中需要選中Container,以提供容器支持。 其它都為默認。在ClassView中將產生如下類應用類: CEmbed_WordApp in Embed_Word.h and Embed_Word.cpp框架類: 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的函數: LPDISPATCH GetIDispatch(); 其函數實現如下:

LPDISPATCHCEmbed_WordCntrItem::GetIDispatch(){ASSERT_VALID(this);ASSERT(m_lpObject!=NULL);LPUNKNOWNlpUnk=m_lpObject;Run();LPOLELINKlpOleLink=NULL;if(m_lpObject->QueryInterface(IID_IOleLink,(LPVOIDFAR*)&lpOleLink)==NOERROR){ASSERT(lpOleLink!=NULL);lpUnk=NULL;if(lpOleLink->GetBoundSource(&lpUnk)!=NOERROR){TRACE0("Warning:Linkisnotconnected!n");lpOleLink->Release();}ASSERT(lpUnk!=NULL);}LPDISPATCHlpDispatch=NULL;if(lpUnk->QueryInterface(IID_IDispatch,(LPVOIDFAR*)&lpDispatch)!=NOERROR){TRACE0("Waring:doesnotsupportIDispatch!n");returnNULL;}ASSERT(lpDispatch!=NULL);returnlpDispatch;}

通過此函數來返回標準COM接口IDispatch。(5)在Embed_WordView.cpp中添加對"MSWord8.h"的引用:#include "MSWord8.h",如使用Word2000,則包含對"MSWord9.h"的引用。 然后在視類CEmbed_WordView中添加函數EmbedAutomateExcel()

voidCEmbed_WordView::EmbedAutomateWord(){BeginWaitCursor();CEmbed_WordCntrItem*pItem=NULL;TRY{CEmbed_WordDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);pItem=newCEmbed_WordCntrItem(pDoc);ASSERT_VALID(pItem);GetClientRect(&pItem->rect);CLSIDclsid;if(FAILED(::CLSIDFromProgID(L"Word.document",&clsid)))AfxThrowMemoryException();if(!pItem->CreateNewItem(clsid))AfxThrowMemoryException();ASSERT_VALID(pItem);pItem->DoVerb(OLEIVERB_SHOW,this);m_pSelection=pItem;pDoc->UpdateAllViews(NULL);LPDISPATCHlpDisp;lpDisp=pItem->GetIDispatch();}CATCH(CException,e){if(pItem!=NULL){ASSERT_VALID(pItem);pItem->Delete();}AfxMessageBox(IDP_FAILED_TO_CREATE);}END_CATCHEndWaitCursor();}

如果仔細研究過這段代碼,會發現它同AppWizard自動生成的OnInsertObject()函數有著驚人的相似程度,看一下View類中的 OnInsertObject() 方法,對其中的注釋引起了我們的興趣,因為它和我們剛寫的方法有驚人的相似。事實上,我們剛才寫的只不過是OnInsertObject()的一個特例:OnInsertObject()允許用戶從可用的OLE對象列表中選擇其一插入到應用程序中。因為在此我們只需對Word進行自動化,所以派生了這一行為。(6)為了在程序剛啟動時便將Word嵌入到程序中來,還需在視類的OnInitialUpdate()函數中添加代碼:

voidCEmbed_WordView:nInitialUpdate(){CView:nInitialUpdate();EmbedAutomateWord();//將Word嵌入m_pSelection=NULL;}

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

voidCEmbed_WordView:nDraw(CDC*pDC){CEmbed_WordDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);if(m_pSelection==NULL){POSITIONpos=pDoc->GetStartPosition();m_pSelection=(CEmbed_WordCntrItem*)pDoc->GetNextClientItem(pos);}if(m_pSelection!=NULL){CRectrect;GetClientRect(&m_pSelection->rect);m_pSelection->OnGetItemPosition(rect);m_pSelection->Draw(pDC,rect);}}

二:在VC中調用WORD(顯示,修改,存盤,運行宏)(1)使用AppWizard創建一個新的MFC AppWizard(EXE)工程,命名為"office"(2)選擇單文檔視圖(SDI)結構,在第3步中需要選中Container,以提供容器支持,并且選中active document container 其它都為默認(3)在View菜單中,選ClassWizard,選Automation選項卡,選Add Class,選擇From a TypeLibrary, 在Office目錄中選中Microsoft Word 97/2000 類型庫Word8.olb或Word9.olb,選中application,document,_document。單擊ok(4)給COfficeCntrItem添加一Public方法。LPDISPATCH GetIDispatch()其源碼如下:

ASSERT_VALID(this); ASSERT(m_lpObject!=NULL); LPUNKNOWNlpUnk=m_lpObject; Run(); LPOLELINKlpOleLink=NULL; if(m_lpObject->QueryInterface(IID_IOleLink,(LPVOIDFAR*)&lpOleLink)==NOERROR) { ASSERT(lpOleLink!=NULL); lpUnk=NULL; if(lpOleLink->GetBoundSource(&lpUnk)!=NOERROR) { TRACE0("Warning:Linkisnotconnected!n"); lpOleLink->Release(); returnNULL; } ASSERT(lpUnk!=NULL); } LPDISPATCHlpDispatch=NULL; if(lpUnk->QueryInterface(IID_IDispatch,(LPVOIDFAR*)&lpDispatch)!=NOERROR) { TRACE0("Warning:doesnotsupportIDispatch!n"); returnNULL;} ASSERT(lpDispatch!=NULL); returnlpDispatch;

(5)。在officeView.h添加#include "msword8.h" //如果是Word2000則為#include "msword9.h"(6)。修改void COfficeView:nInsertObject(),源碼如下:

BeginWaitCursor();COfficeCntrItem*pItem=NULL; TRY { //Createnewitemconnectedtothisdocument. COfficeDoc*pDoc=GetDocument(); ASSERT_VALID(pDoc); pItem=newCOfficeCntrItem(pDoc); ASSERT_VALID(pItem);//Initializetheitemfromthedialogdata. /*if(!dlg.CreateItem(pItem)) AfxThrowMemoryException();//anyexceptionwilldo ASSERT_VALID(pItem);*/ CLSIDclsid;// if(FAILED(::CLSIDFromProgID(L"Word.document",&clsid))) AfxThrowMemoryException();if(bOpenStatus)//如果是打開文檔 { if(!pItem->CreateFromFile(sFilename,clsid))//打開已有文檔 AfxThrowMemoryException(); } else//否則新建文檔 { if(!pItem->CreateNewItem(clsid))//新建文檔 AfxThrowMemoryException(); } ASSERT_VALID(pItem);pItem->Activate(OLEIVERB_SHOW,this);ASSERT_VALID(pItem); m_pSelection=pItem;//setselectiontolastinserteditem pDoc->UpdateAllViews(NULL); //Asanarbitraryuserinterfacedesign,thissetstheselection //tothelastiteminserted.//TODO:reimplementselectionasappropriateforyourapplicationm_pSelection=pItem;//setselectiontolastinserteditem pDoc->UpdateAllViews(NULL); } CATCH(CException,e) { if(pItem!=NULL) { ASSERT_VALID(pItem); pItem->Delete(); } AfxMessageBox(IDP_FAILED_TO_CREATE); } END_CATCHEndWaitCursor();(7)重載ID—FILE—SAVE,voidCOfficeView:nFileSave() { //TODO:Addyourcommandhandlercodehere TRY{ LPDISPATCHlpDisp;lpDisp=m_pSelection->GetIDispatch();Documentsdocs;_Applicationapp;_Documentmydoc; Documentsmy;mydoc.AttachDispatch(lpDisp,TRUE); app=mydoc.GetApplication(); /*app.Run("Macro3");*/ mydoc.Activate(); BOOLpassword=mydoc.GetHasPassword(); mydoc.SetPassword("love"); password=mydoc.GetHasPassword(); COleVariantvFalse((short)FALSE); mydoc.SaveAs(COleVariant(filename),vFalse,vFalse,COleVariant(""),vFalse,//filename為一個以字符串表達的文件名如"c:\love1.doc" COleVariant(""),vFalse,vFalse,vFalse,vFalse,vFalse);} CATCH(CException,e) { } END_CATCH }bulid,clickinsertobject,andedit,andsave.mayberunmacro.

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
日日碰狠狠添天天爽超碰97| 无码播放一区二区三区| 国产男女激情视频| 成人短视频在线观看免费| 中文字幕22页| 国产裸体舞一区二区三区| 久久视频这里有精品| 四虎4hu永久免费入口| www.51色.com| 最新天堂在线视频| 婷婷免费在线观看| 亚洲福利精品视频| 五月婷婷狠狠操| 一本久道中文无码字幕av| 国产亚洲天堂网| 男人日女人bb视频| 北条麻妃在线视频观看| www.xxx麻豆| 日韩av在线播放不卡| 男人天堂a在线| 久久99中文字幕| 给我免费播放片在线观看| 国产美女网站在线观看| 狠狠97人人婷婷五月| 中文字幕乱码人妻综合二区三区| 精品少妇一区二区三区在线| 免费黄色福利视频| av五月天在线| 亚洲制服中文字幕| 奇米777四色影视在线看| 欧美高清中文字幕| 可以在线看的av网站| 欧美激情国产精品日韩| 欧美黄色性生活| 中文字幕成人免费视频| a级黄色片网站| 五十路熟女丰满大屁股| 成熟老妇女视频| 自拍偷拍21p| 日韩 欧美 自拍| 国产精品无码一区二区在线| 亚洲男人天堂色| av电影一区二区三区| 丁香六月激情婷婷| 嫩草av久久伊人妇女超级a| 国产精欧美一区二区三区白种人| 久久精品在线免费视频| 久久黄色片视频| 老司机久久精品| 国产乱淫av片杨贵妃| 欧美综合在线观看视频| 亚洲av毛片在线观看| 阿v天堂2018| 亚洲第一狼人区| 精品一二三四五区| 欧美伦理片在线观看| 喜爱夜蒲2在线| 成年人在线观看视频免费| 欧洲xxxxx| 中文字幕无码不卡免费视频| 自拍偷拍视频在线| 国产精品丝袜久久久久久消防器材| 超碰在线播放91| 毛片在线播放视频| 人人妻人人澡人人爽精品欧美一区| 午夜精品久久久久久久无码| www.午夜色| 爆乳熟妇一区二区三区霸乳| www.夜夜爱| 999热精品视频| 国产一级片黄色| 日韩国产一级片| 欧美精品色视频| 国产成人综合一区| 无码专区aaaaaa免费视频| 亚洲自拍第三页| 我要看一级黄色大片| 国产精品一区二区免费在线观看| 午夜不卡福利视频| 99热成人精品热久久66| 成人免费观看在线| www.亚洲一区二区| 日韩一区二区三区久久| 精品久久久久久无码国产| 精品少妇人妻av免费久久洗澡| 国产999免费视频| 亚洲va在线va天堂va偷拍| 99蜜桃臀久久久欧美精品网站| 97中文字幕在线| 日韩欧美色视频| 91视频福利网| 国产精品久久久久久久99| 一区二区三区韩国| av免费在线播放网站| 中文字幕无码精品亚洲35| 九九爱精品视频| 日韩a级在线观看| www.好吊操| 国产精品第157页| 成人免费观看在线| 成年人网站国产| 精品少妇一区二区三区在线| 国内精品视频一区二区三区| 中文字幕の友人北条麻妃| 成人在线免费高清视频| 91精品国产毛片武则天| 国产91在线亚洲| 日韩网站在线免费观看| 黄页网站大全在线观看| 中文字幕无码精品亚洲35| 777久久久精品一区二区三区| 欧美性大战久久久久xxx| 日韩在线视频在线观看| aaa毛片在线观看| 永久免费的av网站| 99九九99九九九99九他书对| 亚洲av毛片在线观看| 乱熟女高潮一区二区在线| 欧美人成在线观看| 最近免费中文字幕中文高清百度| 宅男噜噜噜66国产免费观看| 天堂av手机在线| 日韩精品在线观看av| 97xxxxx| 777一区二区| 菠萝蜜视频在线观看入口| 国产免费一区二区三区视频| 一区二区在线免费看| 日韩精品免费一区| 国产一区二区视频免费在线观看| 污污动漫在线观看| 久久男人资源站| 成人免费视频久久| 色呦呦网站入口| 日本久久久精品视频| 国产免费中文字幕| 国产青青在线视频| 亚洲一二三不卡| 男人的天堂狠狠干| 亚洲综合123| 久久久久久久久久久视频| 久久久久久久久久久久久久久国产| 97中文字幕在线| 日本人69视频| 乱妇乱女熟妇熟女网站| 欧美亚洲视频一区| 国产三区在线视频| 99中文字幕在线观看| www欧美激情| www.av毛片| 中文字幕第50页| 黄色成人免费看| 欧美牲交a欧美牲交| 免费观看中文字幕| mm131亚洲精品| 少妇高清精品毛片在线视频| 国产91视频一区| 99久久99精品| 欧美女同在线观看| av观看免费在线| aa视频在线播放| 中文字幕日韩精品无码内射| theporn国产精品| 国产理论在线播放| 免费在线a视频| 国产一区二区三区小说| 国产精品久久成人免费观看| 亚洲少妇第一页| 国产视频在线视频| 天天摸天天碰天天添| 日本xxxxxxxxxx75| 国产免费一区二区视频| 国产卡一卡二在线| 午夜啪啪免费视频| 亚洲精品免费一区亚洲精品免费精品一区| www.亚洲天堂网| 欧美精品第三页| 一本色道无码道dvd在线观看| 国产av麻豆mag剧集| 中国丰满熟妇xxxx性| 日韩激情视频一区二区| 4444亚洲人成无码网在线观看| 亚洲免费av网| 日韩一二区视频| 狠狠精品干练久久久无码中文字幕| 97人人模人人爽人人澡| eeuss中文| wwwjizzjizzcom| 久艹在线免费观看| 少妇无码av无码专区在线观看| 激情小视频网站| 男人日女人下面视频| www国产黄色| 国产一伦一伦一伦| av动漫免费观看| 国产精品久久久久久久久电影网| 91黄色在线看| av免费中文字幕| 中文字幕有码av| 黄色一级视频播放|