我在用MFC(VC++6.0)做一个简单的小程序,用到webbrowser这个控件,我想用这个控件获取访问网页的源代码,并在一个Edit box 里面显示出来。我的对话框的界面是这样子的:Edit box1:在这里面输入网址;Edit box2:显示访问网页的源代码;一个按钮:点此按钮可以访问网页;一个webbrowser控件。哪位高手教教我怎么做吧!我是菜鸟,过程越具体越好呀,谢谢啊 !

解决方案 »

  1.   

    windywater这位大哥能具体教教我怎么写代码吗?我很菜的,可以麻烦你下吗,谢谢啊
      

  2.   

    我都是用的CHtmlView,你可以参考下它的GetSource实现:BOOL CHtmlView::GetSource(CString& refString)
    {
    ENSURE(m_pBrowserApp != NULL); BOOL bRetVal = FALSE;

    CComPtr<IDispatch> spDisp; 
    m_pBrowserApp->get_Document(&spDisp);
    if (spDisp != NULL)
    {
    HGLOBAL hMemory;
    hMemory = GlobalAlloc(GMEM_MOVEABLE, 0);
    if (hMemory != NULL)
    {
    CComQIPtr<IPersistStreamInit> spPersistStream = spDisp;
    if (spPersistStream != NULL)
    {
    CComPtr<IStream> spStream;
    if (SUCCEEDED(CreateStreamOnHGlobal(hMemory, TRUE, &spStream)))
    {
    spPersistStream->Save(spStream, FALSE); STATSTG statStg;
    spStream->Stat(&statStg, STATFLAG_NONAME); LPCSTR pstr = static_cast<LPCSTR>(GlobalLock(hMemory));
    if (pstr != NULL)
    {
    // Stream is expected to be ANSI (CP-ACP). CString constructor
    // will convert implicitly, and truncate to correct length. bRetVal = TRUE;
    TRY
    {
    refString = CString(pstr, statStg.cbSize.LowPart);
    }
    CATCH_ALL(e)
    {
    bRetVal = FALSE;
    DELETE_EXCEPTION(e);
    }
    END_CATCH_ALL if (bRetVal == FALSE)
    GlobalFree(hMemory);
    else
    GlobalUnlock(hMemory);
    }
    else
    {
    GlobalFree(hMemory);
    }
    }
    else
    {
    GlobalFree(hMemory);
    }
    }
    else
    {
    GlobalFree(hMemory);
    }
    }
    } return bRetVal;
    }
      

  3.   

    不能获取原码,只能获取显示的内容的HTML代码
      

  4.   

    “网页的源代码”是指什么?不是HTML代码?
      

  5.   


    估计你想得到原始服务器的响应报文,那么可以使用Winsock