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一区二区
av免费观看国产| 国产精品v日韩精品v在线观看| 簧片在线免费看| 农村妇女精品一二区| 久久视频这里有精品| av女优在线播放| 霍思燕三级露全乳照| 欧美精品一区二区三区三州| 1024av视频| 欧美黄色一级片视频| 手机视频在线观看| 国产资源中文字幕| 成人在线观看www| 欧美,日韩,国产在线| 777久久久精品一区二区三区| 香港三级韩国三级日本三级| 国产男女无遮挡| 99sesese| 999一区二区三区| 很污的网站在线观看| 天天摸天天碰天天添| 亚洲免费一级视频| 男人天堂av片| 中文字幕国内自拍| 永久免费看av| 中文字幕在线观看第三页| 中文字幕免费高| 欧美视频在线播放一区| 五月天丁香花婷婷| 男人操女人免费软件| 色呦色呦色精品| 国产一级做a爰片久久毛片男| 国产91美女视频| 裸体裸乳免费看| 午夜dv内射一区二区| 日本一道在线观看| 亚洲欧美日本一区二区三区| 黄色大片中文字幕| 免费不卡av网站| 搡女人真爽免费午夜网站| 无码人妻精品一区二区蜜桃百度| 成人中文字幕av| 99热亚洲精品| 99久久99久久精品| 99精品视频网站| 91视频免费版污| 给我免费播放片在线观看| 久国产精品视频| 91视频免费版污| 国产主播在线看| 黄网站欧美内射| 肉大捧一出免费观看网站在线播放 | 亚洲 欧洲 日韩| 国产精品视频黄色| 成人黄色片视频| 欧美性大战久久久久xxx| 国产一级片91| 国产人妻人伦精品| 裸体裸乳免费看| 一级全黄肉体裸体全过程| 亚洲免费av一区| 日本77777| 婷婷中文字幕在线观看| 九色91popny| 激情黄色小视频| 思思久久精品视频| 成人综合久久网| 中文国产在线观看| 香蕉视频免费版| 国产成a人亚洲精v品在线观看| 一级黄色大片儿| 丰满女人性猛交| 日韩欧美视频免费在线观看| 久久久天堂国产精品| 精品成在人线av无码免费看| 北条麻妃在线视频观看| 精品www久久久久奶水| 国产又黄又猛又粗| 青青草原播放器| 欧美性潮喷xxxxx免费视频看| 日本www在线视频| 99热手机在线| 三级网在线观看| 免费观看美女裸体网站| av免费在线播放网站| 97超碰成人在线| 国产成人亚洲综合无码| 欧美日韩亚洲一| 91pony九色| 精品视频在线观看一区| 最近免费中文字幕中文高清百度| 中国黄色片免费看| 性一交一乱一伧国产女士spa| 男人的天堂99| 神马午夜伦理影院| 日韩在线第三页| 免费在线看黄色片| 国产精品入口免费软件| 成人在线播放网址| 狠狠干狠狠操视频| 一本大道熟女人妻中文字幕在线 | 欧美伦理视频在线观看| 欧美激情第四页| 亚洲国产精品毛片av不卡在线| 奇米777在线视频| 女人另类性混交zo| 欧美视频在线第一页| 色综合色综合色综合色综合| 800av在线免费观看| 制服丝袜综合网| 北条麻妃在线观看| 国产无限制自拍| 国产在线拍揄自揄拍无码| 亚洲第一狼人区| 青青在线视频免费| 国产一区二区在线视频播放| 国产一级大片免费看| 日韩av片免费观看| 色国产在线视频| 人人干人人干人人| 女人另类性混交zo| 国产欧美在线一区| 国产午夜伦鲁鲁| 亚洲熟妇无码一区二区三区| 男人天堂新网址| 男人天堂新网址| 日本福利视频在线观看| 黄黄视频在线观看| 欧美日韩一级在线| 99亚洲国产精品| www婷婷av久久久影片| 日本男女交配视频| 久久亚洲中文字幕无码| 人妻少妇精品久久| 高清在线观看免费| 国产在线青青草| 国产三级三级看三级| 亚洲图色中文字幕| 亚洲美女自拍偷拍| 精品视频在线观看一区| 好吊妞无缓冲视频观看| 久久久久久久激情| 亚洲国产精品三区| 最近中文字幕免费mv| 亚洲国产精品无码av| 加勒比成人在线| 色一情一乱一伦一区二区三区日本| 日韩欧美在线免费观看视频| 亚洲天堂伊人网| 国产精品无码免费专区午夜| 午夜精品久久久久久久无码| 青青草av网站| 成年人视频大全| aa在线免费观看| www.com久久久| 丁香六月激情网| 欧美日韩大尺度| 嫩草影院中文字幕| 在线免费视频a| 97超碰在线人人| 91看片破解版| 六月丁香激情网| 天堂网成人在线| 日本www在线播放| 日韩欧美中文在线视频| 欧美亚洲精品一区二区| www.涩涩涩| 国产淫片免费看| 青青视频免费在线| 91亚洲精品久久久蜜桃借种| 丁香六月激情网| 国产成人精品免费看在线播放| 国产精品欧美激情在线观看| 久久精品久久99| 虎白女粉嫩尤物福利视频| 一级黄色片播放| 婷婷激情5月天| www.日本xxxx| 日韩欧美精品在线观看视频| 国风产精品一区二区| 亚洲第一天堂久久| 亚洲第一中文av| 国产av天堂无码一区二区三区| 伊人成人免费视频| 天天干天天操天天做| 黑人糟蹋人妻hd中文字幕 | 免费一区二区三区在线观看| 日韩少妇内射免费播放18禁裸乳| 亚洲国产精品女人| 欧美日韩视频免费在线观看| 污片在线免费看| 最新中文字幕免费视频| 人妻少妇被粗大爽9797pw| 青青青国产在线观看| 日韩精品在线中文字幕| 屁屁影院ccyy国产第一页| 日本国产中文字幕| av影院在线播放| 我的公把我弄高潮了视频| 久青草视频在线播放|