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

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

VC寫(xiě)word 用VC寫(xiě)word文件方法

VC寫(xiě)word 用VC寫(xiě)word文件方法,我們?cè)诠ぷ髦袝?huì)遇到很多問(wèn)題,像VC寫(xiě)word這類(lèi)問(wèn)題應(yīng)該大家也都遇到過(guò)吧,今天這篇VC寫(xiě)word 用VC寫(xiě)word文件方法的文章,專(zhuān)門(mén)為你解答了這個(gè)問(wèn)題,相信你看完后一定會(huì)收獲很多!

問(wèn)題:您能給我介紹點(diǎn)用Visual C++ 動(dòng)態(tài)生成WORD文檔資料嗎?給個(gè)例子代碼什么的。解答:一:

以下是創(chuàng)建這個(gè)MFC應(yīng)用程序的步驟:(1)使用AppWizard創(chuàng)建一個(gè)新的MFC AppWizard(EXE)工程,命名為"Embed_Word"(2)選擇單文檔視圖(SDI)結(jié)構(gòu),在第3步中需要選中Container,以提供容器支持。 其它都為默認(rèn)。在ClassView中將產(chǎn)生如下類(lèi)應(yīng)用類(lèi): CEmbed_WordApp in Embed_Word.h and Embed_Word.cpp框架類(lèi): CMainFrame in MainFrm.h and MainFrm.cpp文檔類(lèi): CEmbed_WordDoc in Embed_WordDoc.h and Embed_WordDoc.cpp視圖類(lèi): CEmbed_WordView in Embed_WordView.h and Embed_WordView.cpp容器類(lèi): CEmbed_WordCntrItem in CntrItem.h and CntrItem.cpp(3)在View菜單中,選ClassWizard,選Automation選項(xiàng)卡,選Add Class,選擇From a TypeLibrary, 在Office目錄中選中Microsoft Word 97/2000 類(lèi)型庫(kù)Word8.olb或Word9.olb,會(huì)將把類(lèi)型庫(kù)中的所有類(lèi)添加到你的工程中。這時(shí),ClassView中會(huì)多出幾十個(gè)類(lèi),可以通過(guò)這些類(lèi)提供的接口來(lái)實(shí)現(xiàn)必要的功能。(4)在CCntrItem.h中添加獲取標(biāo)準(zhǔn)COM接口IDispach的函數(shù): LPDISPATCH GetIDispatch(); 其函數(shù)實(shí)現(xiàn)如下:

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;}

通過(guò)此函數(shù)來(lái)返回標(biāo)準(zhǔn)COM接口IDispatch。(5)在Embed_WordView.cpp中添加對(duì)"MSWord8.h"的引用:#include "MSWord8.h",如使用Word2000,則包含對(duì)"MSWord9.h"的引用。 然后在視類(lèi)CEmbed_WordView中添加函數(shù)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();}

如果仔細(xì)研究過(guò)這段代碼,會(huì)發(fā)現(xiàn)它同AppWizard自動(dòng)生成的OnInsertObject()函數(shù)有著驚人的相似程度,看一下View類(lèi)中的 OnInsertObject() 方法,對(duì)其中的注釋引起了我們的興趣,因?yàn)樗臀覀儎倢?xiě)的方法有驚人的相似。事實(shí)上,我們剛才寫(xiě)的只不過(guò)是OnInsertObject()的一個(gè)特例:OnInsertObject()允許用戶(hù)從可用的OLE對(duì)象列表中選擇其一插入到應(yīng)用程序中。因?yàn)樵诖宋覀冎恍鑼?duì)Word進(jìn)行自動(dòng)化,所以派生了這一行為。(6)為了在程序剛啟動(dòng)時(shí)便將Word嵌入到程序中來(lái),還需在視類(lèi)的OnInitialUpdate()函數(shù)中添加代碼:

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

(7)為了使嵌入的工作區(qū)占滿(mǎn)整個(gè)客戶(hù)區(qū)可以通過(guò)修改OnDraw函數(shù)來(lái)實(shí)現(xiàn):

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中調(diào)用WORD(顯示,修改,存盤(pán),運(yùn)行宏)(1)使用AppWizard創(chuàng)建一個(gè)新的MFC AppWizard(EXE)工程,命名為"office"(2)選擇單文檔視圖(SDI)結(jié)構(gòu),在第3步中需要選中Container,以提供容器支持,并且選中active document container 其它都為默認(rèn)(3)在View菜單中,選ClassWizard,選Automation選項(xiàng)卡,選Add Class,選擇From a TypeLibrary, 在Office目錄中選中Microsoft Word 97/2000 類(lèi)型庫(kù)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)//如果是打開(kāi)文檔 { if(!pItem->CreateFromFile(sFilename,clsid))//打開(kāi)已有文檔 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為一個(gè)以字符串表達(dá)的文件名如"c:\love1.doc" COleVariant(""),vFalse,vFalse,vFalse,vFalse,vFalse);} CATCH(CException,e) { } END_CATCH }bulid,clickinsertobject,andedit,andsave.mayberunmacro.

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
色欲色香天天天综合网www| 午夜精品久久久久久久99热影院| www.亚洲高清| 久久久国产欧美| 日本va中文字幕| 91精品无人成人www| 午夜国产一区二区三区| 成年网站在线播放| 天天操精品视频| 18视频在线观看娇喘| 波多野结衣 作品| 国产成人艳妇aa视频在线 | 久久久久久久激情| 无码人妻丰满熟妇区五十路百度| 成年人在线观看视频免费| 超碰超碰在线观看| 成人手机在线播放| 美女日批免费视频| 中文字幕国产免费| 麻豆映画在线观看| 无码人妻丰满熟妇区毛片| 色综合天天色综合| av动漫在线播放| 成人羞羞国产免费网站| jizzzz日本| www插插插无码视频网站 | 欧美h视频在线观看| 国产精品视频二| www.爱色av.com| 日韩av加勒比| 日日摸日日碰夜夜爽av| 永久免费黄色片| 欧美日韩成人免费视频| 久久6免费视频| 久久9精品区-无套内射无码| 天天干天天操天天玩| 日本a视频在线观看| 性久久久久久久久久久久久久| 日韩精品视频在线观看视频| 在线观看免费成人av| 国产a级黄色大片| av免费一区二区| 日韩免费毛片视频| 亚洲精品无码国产| 亚洲理论中文字幕| 日日噜噜噜噜久久久精品毛片| 国产va亚洲va在线va| 手机成人av在线| 亚洲精品手机在线观看| 大肉大捧一进一出好爽视频| 黄色一级片av| 中国老女人av| 美女在线免费视频| 精品亚洲视频在线| 高清av免费看| 韩国中文字幕av| 欧美日韩在线观看不卡| 爱福利视频一区二区| 久久精品免费一区二区| 黄色成人在线看| 久无码久无码av无码| 日韩视频免费播放| 国产特级黄色大片| 大肉大捧一进一出好爽视频| 国产免费观看高清视频| 欧美日韩性生活片| 日韩a在线播放| 在线观看免费成人av| 中文字幕网av| 久久综合在线观看| 日韩a一级欧美一级| 日本一二三四区视频| 经典三级在线视频| 男人用嘴添女人下身免费视频| 国产美女网站在线观看| 茄子视频成人免费观看| 天天操,天天操| 法国空姐在线观看免费| 日本人妻伦在线中文字幕| 日本在线xxx| 妓院一钑片免看黄大片| 一二三av在线| 草草草视频在线观看| 国产在线精品91| 91丨九色丨蝌蚪| 免费看毛片的网址| 午夜dv内射一区二区| 老汉色影院首页| 久久久久免费精品| 日本久久高清视频| 成人在线观看a| 手机福利在线视频| 精品少妇一区二区三区在线| 精品999在线| 国产在线视频在线| 国产原创精品在线| 日本精品久久久久久久久久| 激情五月俺来也| 欧美啪啪免费视频| 亚洲精品在线网址| 精品久久久久久无码国产| 艳母动漫在线观看| 一级片视频免费观看| 日韩亚洲欧美视频| 黄色一级片网址| 亚洲五月天综合| 免费无码毛片一区二三区| 久久久久xxxx| 黄色av免费在线播放| 日韩日韩日韩日韩日韩| 天天操精品视频| 污污网站在线观看视频| 日韩精品一区二区三区久久| 国产精品igao激情视频| 国产欧美激情视频| 自拍偷拍21p| 国产一级不卡毛片| 黄页免费在线观看视频| 欧美日韩dvd| 超碰超碰超碰超碰超碰| 天天影视色综合| 天天干天天综合| 黄色一级一级片| 久久综合久久色| 苍井空浴缸大战猛男120分钟| 妞干网视频在线观看| 国产一二三四区在线观看| 日本成人性视频| 国产又粗又猛大又黄又爽| 五月天视频在线观看| 中文字幕一区二区三区四区在线视频| 日本www在线视频| 大陆极品少妇内射aaaaa| 亚洲国产精品成人天堂| 久久亚洲中文字幕无码| 国产视频九色蝌蚪| 国产日韩一区二区在线观看| 色欲av无码一区二区人妻| 欧美 日本 亚洲| 日韩手机在线观看视频| 日本成人黄色网| 日本黄色的视频| 捷克做爰xxxⅹ性视频| 黄色高清视频网站| 精品久久久久久无码中文野结衣| 欧美视频免费看欧美视频| 国产精品久久久久9999爆乳| 青青草精品视频在线| 欧美一级黄色片视频| 亚洲自拍第三页| 男人添女荫道口女人有什么感觉| 蜜臀av无码一区二区三区| 亚洲精品乱码久久久久久自慰| 中文字幕亚洲乱码| 白白操在线视频| 亚洲国产精品三区| 成人免费看片'免费看| 成年人网站大全| 麻豆传媒网站在线观看| 人妻有码中文字幕| 干日本少妇视频| 欧美精品aaaa| 97在线国产视频| 中文字幕免费高清在线| 18禁免费观看网站| 视频区 图片区 小说区| 男人天堂网视频| 强伦女教师2:伦理在线观看| 人妻有码中文字幕| 青青草视频国产| 亚洲人辣妹窥探嘘嘘| 你真棒插曲来救救我在线观看| 亚洲免费看av| 日日碰狠狠添天天爽超碰97| 日韩第一页在线观看| 欧美日韩亚洲自拍| 大陆极品少妇内射aaaaa| 91免费视频黄| 中文字幕国产高清| 日韩福利视频在线| 99999精品视频| 亚洲精品无码国产| 国产精品久久久影院| 天天久久综合网| 伊人色在线观看| 亚洲综合欧美激情| 手机看片福利日韩| 欧美日韩一区二区在线免费观看| 日韩亚洲欧美视频| 激情五月婷婷六月| 九九久久九九久久| 黑人巨茎大战欧美白妇| 人人妻人人澡人人爽精品欧美一区| 成人在线观看黄| 妺妺窝人体色www在线小说| av免费观看网| 可以在线看的黄色网址| 欧美精品aaaa| 日韩高清第一页| 天堂av免费看|