这个组件的功能:在当前的一个网页中,在某个frame中有一个按钮,当按下这个按钮时(这个按钮调用com),这个frame内的内容自动复制到当前打开的word文件的当前光标后
   这个是小弟的工作任务,请大家帮忙,谢谢.
   msn:[email protected]
   e-mail:[email protected]

解决方案 »

  1.   

    当前打开的word文件?
    是在什么地方打开,网页怎么知道是这个word
      

  2.   

    web编程不太熟,楼主先看看这些文章:
    http://comcamp.diy.myrice.com/techarticles/com/2010.htm
    http://dev.csdn.net/develop/article/18/18465.shtmword操作:
    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=190541
    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=205597
      

  3.   

    我是意思是我的电脑现在打开一个网页,同时也打开了一个word文件.
      

  4.   

    已经没有太多问题了,看看这个:
    http://community.csdn.net/Expert/topic/4102/4102038.xml?temp=1.758975E-02
    http://community.csdn.net/Expert/topic/3584/3584335.xml?temp=.3400843
    http://community.csdn.net/Expert/topic/3489/3489648.xml?temp=.7520716如何控制已打开Word文档,不太清楚。
      

  5.   

    基本解决,方法大概如下(细微之处还请斟酌):
    (需要例子给我短消息,告诉我E_Mail)1、建立支持MFC的ATL工程,添加一个Full Control控件。
    2、Ctrl+W->Add Class->From a type library定位\Program Files\Microsoft Office\OFFICE11\MSWORD.OLB (Office2003是这个文件,其他版本类似)
    3、主要内容:
    给控件添加成员变量 BSTR content;//唉,懒得改了
    给控件添加接口,例子中是Copy,修改cpp文件如下:
    //……
    #include <Mshtml.h>
    #include "msword.h"/////////////////////////////////////////////////////////////////////////////
    // CCtlSTDMETHODIMP CCtl::Copy()
    {
    AFX_MANAGE_STATE(AfxGetStaticModuleState()) // TODO: Add your implementation code here
    if (CopyFromHtm()) {
    PasteToDoc();
    ::SysFreeString(content);
    } return S_OK;
    }BOOL CCtl::PasteToDoc()
    {
    _Application app;  
    Documents docs;  
    _Document doc;  
    Range range;  

    COleVariant  vTrue((short)TRUE),    
    vFalse((short)FALSE),    
    vOpt((long)DISP_E_PARAMNOTFOUND,  VT_ERROR);    

    app.CreateDispatch("Word.Application",NULL);  
    app.SetVisible(TRUE);

    docs=app.GetDocuments();  
    doc=docs.Open(COleVariant("C:\\test.doc"),vFalse,vFalse,vFalse,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt);   range=doc.GetContent();  
    range.SetStart(range.GetEnd());
    range.InsertAfter(CString(content));

    return TRUE;
    }BOOL CCtl::CopyFromHtm()
    {
        CComPtr<IOleContainer> spContainer;
        m_spClientSite->GetContainer(&spContainer); //获取容器
        CComQIPtr<IHTMLDocument2> spDoc = spContainer; //将容器转换为IHTMLDocument2 IHTMLElement *body;
    spDoc->get_body(&body);
        body->get_outerText(&content); //取文本 return TRUE;
    }
      

  6.   

    sinall,有些地方不够详细,现在卡住了