您好,欢迎来到Office教程网
您的位置: 主页 > word教程 > word学习 >

用VC写word文件方法(2)

时间:2012-04-03 来源:office.sc115.com阅读:
  • return   lpDispatch;           
  • }    
  • 通过此函数来返回标准COM接口IDispatch。
    (5)在Embed_WordView.cpp中添加对"MSWord8.h"的引用:#include   "MSWord8.h",如使用Word2000,则包含对"MSWord9.h"的引用。   然后在视类CEmbed_WordView中添加函数EmbedAutomateExcel()

    1. void   CEmbed_WordView::EmbedAutomateWord()           
    2. {           
    3. BeginWaitCursor();           
    4. CEmbed_WordCntrItem*   pItem   =   NULL;           
    5. TRY           
    6. {           
    7. CEmbed_WordDoc*   pDoc   =   GetDocument();           
    8. ASSERT_VALID(pDoc);           
    9. pItem   =   new   CEmbed_WordCntrItem(pDoc);           
    10. ASSERT_VALID(pItem);           
    11. GetClientRect(&pItem->rect);           
    12. CLSID   clsid;           
    13. if(FAILED(::CLSIDFromProgID(L"Word.document",&clsid)))           
    14. AfxThrowMemoryException();           
    15. if(!pItem->CreateNewItem(clsid))           
    16. AfxThrowMemoryException();           
    17. ASSERT_VALID(pItem);           
    18. pItem->DoVerb(OLEIVERB_SHOW,   this);           
    19. m_pSelection   =   pItem;           
    20. pDoc->UpdateAllViews(NULL);           
    21. LPDISPATCH   lpDisp;           
    22. lpDisp   =   pItem->GetIDispatch();           
    23. }           
    24. CATCH(CException,   e)           
    25. {           
    26. if   (pItem   !=   NULL)           
    27. {           
    28. ASSERT_VALID(pItem);           
    29. pItem->Delete();           
    30. }           
    31. AfxMessageBox(IDP_FAILED_TO_CREATE);           
    32. }           
    33. END_CATCH           
    34. EndWaitCursor();           
    35. }    

    如果仔细研究过这段代码,会发现它同AppWizard自动生成的OnInsertObject()函数有着惊人的相似程度,看一下View类中的   OnInsertObject()   方法,对其中的注释引起了我们的兴趣,因为它和我们刚写的方法有惊人的相似。事实上,我们刚才写的只不过是OnInsertObject()的一个特例:OnInsertObject()允许用户从可用的OLE对象列表中选择其一插入到应用程序中。因为在此我们只需对Word进行自动化,所以派生了这一行为。
    (6)为了在程序刚启动时便将Word嵌入到程序中来,还需在视类的OnInitialUpdate()函数中添加代码:

    1. void   CEmbed_WordView:nInitialUpdate()           

    office教程 - office2007免费版下载 - word教程 - 网站地图