MFC WebBrowser控件编程时,如何10秒不能打开指定网页时就直接输出文本。即如何设置超时 和 自输出文本,文本最好是自带资源。谢谢

解决方案 »

  1.   

    BOOL GetSource(CString &strString)
    {
    return TRUE;
    IHTMLDocument2* pHtmlDoc2 = (IHTMLDocument2*)GetHtmlDocument();      
        // check if HtmlDocument initialized      
        if( pHtmlDoc2 != NULL)      
        {      
            IHTMLDocument3* pHTMLDoc3 = NULL;      
            HRESULT hr = pHtmlDoc2->QueryInterface(IID_IHTMLDocument3, (LPVOID*)&pHTMLDoc3);      
            ASSERT(SUCCEEDED(hr));         
            if(pHTMLDoc3)      
            {      
                IHTMLElement* pDocElem=NULL;      
                hr = pHTMLDoc3->get_documentElement(&pDocElem);     
                ASSERT(SUCCEEDED(hr));    
                if(pDocElem)      
                {                        
                    BSTR bstrHTML;      
                    pDocElem->get_outerHTML(&bstrHTML);      
                    pDocElem->Release();      
                    USES_CONVERSION;      
                   
                    MessageBox(OLE2T(bstrHTML), _T("源文件"));     
    //bstrHTML就是你要的东西
    //写文件
    FILE * fp = NULL;
    fp = fopen(".\\FileName.txt", "w+);
    if(fp == NULL)
    return false;fputs(OLE2T(bstrHTML), fp);
    fclose(fp); 
                    strString = OLE2T(bstrHTML);   
                    SysFreeString(bstrHTML);      
                }      
                pHTMLDoc3->Release();      
            }      
            pHtmlDoc2->Release();      
            pHtmlDoc2=NULL;      
        }   
        return TRUE;  
    }
      

  2.   

    我记得WebBrowser2控件有一个函数可以获取打开网页是否完毕;
    你可以百度一下WebBrowser2的成员函数;在计时器里调用这个函数,如果在超时时间内没有打开成功你就可以知道它转到超时了;