就是当网页在TWEBBROWSER中打开后,如何接收TEXT的事件自己处理。希望给出例子

解决方案 »

  1.   

    Handling HTML Element Events
    http://msdn.microsoft.com/workshop/browser/mshtml/tutorials/sink.asp
    The Code Project - Handling HTML Element Events in MFC
    www.codeproject.com/shell/dlgdhtmlevents.asp
      

  2.   

    在 OnDocumentComplete
    中處理
    相關 Documents 就可取得 text
      

  3.   

    http://www.hoyoco.net/soft/delphil/communication/66.htmWebBrowser流程讲解及如何判断下载网页成功
    某资料上说,onnavigatecomplete2事件只在下载成功时才会触发,可我反复试验发现不管成功与否它都会触发。怎样判断是否下载成功呢?急!!!procedure tfrmie2.webdocumentcomplete(sender: tobject; pdisp: idispatch;var url: olevariant);beginif not(web.busy) then beginshowmessage('下载完毕');end;end;对于每次连接(不论是鼠标点击还是用navigate2方法连接)twebbrowser的流程是这样的:
    onbeforenavigate2 <--开始链接时会触发此事件onnavigatecomplete2 <--成功的链接到此网页(以后才会有下面的事件)ondownloadbegin <--开始下载ondownloadcomplete <--下载结束ondocumentcomplete <--页面下载完毕
    对于每个html页面顺序都是如此.如果是frame或iframe的文件都会当成html页面处理.也就是说如果一个页面中有3个iframe那么总共会触发4次beforenavigate2事件.
    对于每个连接且需要显示出来的二进制文件(如*.gif*.bmp*.jpg...)都会触发一个downloadbegin和downloadcomplete事件.
      

  4.   

    http://www.csdn.net/develop/read_article.asp?id=18465
    DHTML 对象模型的有效性
    DHTML 对象模型 用于访问和操作HTML页面的内容,并且在页面装载之前不可用。你的应用程序通过处理WebBrowser 控件的DWebBrowserEvents2::DocumentComplete事件来判断一个页面是否被装载了。 这个事件可能被页面中的每个框架触发,并且在顶层文档载入完成时再触发一次。你可以通过比较事件传递的IDispatch 接口指针和WebBrowser 控件来判断DWebBrowserEvents2::DocumentComplete 事件是否是顶层框架的。这个WebBrowser DWebBrowserEvents2::DocumentComplete 事件的示例处理代码演示如何判断事件是否是顶层框架的, (如果是,)这指明HTML页面载入完成. 本示例也演示如何从一个内存块——在这个场合是一个包含需要显示的HTML内容的字符串——创建流。void myObject::DocumentComplete(LPDISPATCH pDisp, VARIANT* URL)
    {
        HRESULT hr;
        IUnknown* pUnkBrowser = NULL;
        IUnknown* pUnkDisp = NULL;
        IStream* pStream = NULL;
        HGLOBAL hHTMLText;
        static TCHAR szHTMLText[] = "<html><h1>流测试</h1><p>本HTML内容已经从流中加载。</html>";
        // 这个 DocumentComplete 事件是否是顶层框架窗口的?
        // 检查 COM 标识: 比较IUnknown 接口指针.
        hr = m_pBrowser->QueryInterface( IID_IUnknown,  (void**)&pUnkBrowser );
        if ( SUCCEEDED(hr) )
        {
            hr = pDisp->QueryInterface( IID_IUnknown,  (void**)&pUnkDisp );
            if ( SUCCEEDED(hr) )
            {
                if ( pUnkBrowser == pUnkDisp )
                {   // 这是顶层框架窗口的DocumentComplete 事件 —— 页面 载入完成!
                    // 建立一个包含HTML内容的流
                    // 另外, 这个流可以是被传递过来的(而不是被创建的)
       
                    size_t = cchLength;
                    //  TODO: 安全地判断 szHTMLText的长度,单位是TCHAR.
                    hHTMLText = GlobalAlloc( GPTR, cchLength+1 );
        
                    if ( hHTMLText )
                    {
                        size_t cchMax = 256;
                        StringCchCopy((TCHAR*)hHTMLText, cchMax + 1, szHTMLText);
                        //  TODO: 在这里加入错误处理代码。
                        hr = CreateStreamOnHGlobal( hHTMLText, TRUE, &pStream );
                        if ( SUCCEEDED(hr) )
                        {
                           // 调用辅助函数让网络浏览器加载流。
                           LoadWebBrowserFromStream( m_pBrowser, pStream  );
                           pStream->Release();
                        }
                        GlobalFree( hHTMLText );
                    }
                }
                pUnkDisp->Release();
            }
            pUnkBrowser->Release();
        }
    }