1 在mfc结构图中没找到这个类?2 因为vb的webbrowser控件可以指定html字符串直接显示,cwebbrowser2可以吗?

解决方案 »

  1.   

    webbrowser控件是ActiveX控件;
    添加控件之后,可以声明一个对象
    CWebBrowser2 m_Browser;
    m_Browser.Navigate("http://bbs.pediy.com/",NULL,NULL,NULL,NULL);//浏览网页
      

  2.   

    可能没说清楚,我是希望直接显示html字符串CString sHtml;
    sHtml = "<html>abc</html>";CWebBrowser2 m_Browser;
    m_Browser.Navigate(sHtml,NULL,NULL,NULL,NULL);如何能实现这样显示?
      

  3.   

    #include <iostream.h>
    #include <string.h>
    #include <afx.h>
    #include <afxinet.h>int main() 
    {
        CInternetSession sess(_TEXT(""));
        CHttpFile* file = (CHttpFile*)sess.OpenURL(_TEXT("http://www.baidu.com")); 
        CString str;
        while (file->ReadString(str)) {

            cout << str.GetBuffer(0) << endl;
        }
        file->Close();
        cin.get();
        return 0;
    }
      

  4.   

    希望直接显示html字符串?
    #include <iostream.h>
    #include <string.h>
    #include <afx.h>
    #include <afxinet.h>int main() 
    {
        CInternetSession sess(_TEXT(""));
        CHttpFile* file = (CHttpFile*)sess.OpenURL(_TEXT("http://www.baidu.com")); 
        CString str;
        while (file->ReadString(str)) {

            cout << str.GetBuffer(0) << endl;
        }
        file->Close();
        cin.get();
        return 0;
    }
      

  5.   

    就像这样http://topic.csdn.net/u/20090530/17/f41dd2ee-40d9-4420-a6bb-904da5447e3d.html
      

  6.   

    这样可以显示了,只是不太清除是否稳定
    方法是增加DocumentComplete过程
    由于在里面加了页面刷新的过程,会导致重复刷新,于是就增加个状态变量,限制只执行1次
    (bShow 和 str 都是成员变量)void CCWebBrowser2Dlg::DocumentComplete(LPDISPATCH pDisp, VARIANT* URL)
    { if(bShow ==false){
    //LPTSTR str = _T("<html><body>abc</body></html>"); 
    //m_browser.Navigate2(COleVariant("about:blank"), NULL, NULL, NULL, NULL);  ////////////////////////////////////////////
    CComPtr< IDispatch > spDoc(m_browser.GetDocument());
    ASSERT( spDoc ); CComQIPtr< IPersistStreamInit, &IID_IPersistStreamInit > spPSI( spDoc );
    ASSERT(spPSI); LPTSTR lpMem = (LPTSTR)::GlobalAlloc( GPTR, ::lstrlen( str )+1 );
    ASSERT( lpMem );
    ::lstrcpy( lpMem, str ); CComPtr< IStream > spStream;
    ::CreateStreamOnHGlobal( lpMem, TRUE, &spStream );
    ASSERT( spStream ); HRESULT hr = spPSI->InitNew();
    ASSERT( SUCCEEDED(hr) ); hr = spPSI->Load( spStream );
    ASSERT( SUCCEEDED(hr) );  ////////////////////////////////////////////
    bShow = true;
    }}