有关于mfc webbrowser插件的使用

近期写的东西中经常须要嵌入一些浏览器,微软提供了一个比較好的接口,能够在MFC写的程序中嵌入一个简易的浏览器,是以ActiveX插件的形式提供的接口,使用起来也比較的方便,这里我就简单记录下这个插件的使用

这里我用vc6为例吧。我的机器太烂,跑不动vs这样的巨人级别的软件。

首先创建一个对话框,在对话框上右击插入ActiveX的插件


能够看到微软提供了非常多ActiveX的插件供我们选择。


选中浏览器插件确定后就能看到一个浏览器的ActiveX的插件了,以下我们为他关联一个变量m_test例如以下图


关联好后在确定button处填写一个消息响应。

m_test.Navigate("www.baidu.com",NULL,NULL,NULL,NULL);

用这个变量的一个成员函数打开这个网址





关于WebBrowser几个问题

1.关于怎样取得这个网页的内容

HRESULT hr;
    IDispatch* lpDispatch;
    lpDispatch = m_WebBrower.GetDocument();
    IHTMLDocument2* lpDocument2;
    hr = lpDispatch->QueryInterface(IID_IHTMLDocument2, (PVOID*)&lpDocument2);
    if ( hr == S_OK )
    {
		
		
		IHTMLElement * pBody;
		lpDocument2->get_body(&pBody);
		BSTR html;//存放html源码
		CComBSTR html_t;//用于将BSTR转换为cout能够处理的字符串
		pBody->get_innerHTML(&html);
		CString strCookie(html);
		CFile myfile("1.html",CFile::modeWrite|CFile::modeCreate);
		myfile.Write(strCookie,strCookie.GetLength());
		myfile.Close();
		pBody->Release();
        lpDocument2->Release();
    }
    lpDispatch->Release();

2.有关于怎样取得这个网页的cookie

    HRESULT hr;
    IDispatch* lpDispatch;
    lpDispatch = m_WebBrower.GetDocument();
    IHTMLDocument2* lpDocument2;
    hr = lpDispatch->QueryInterface(IID_IHTMLDocument2, (PVOID*)&lpDocument2);
    if ( hr == S_OK )
    {
		
        hr = lpDocument2->get_cookie(&bstrCookie);
        if ( hr == S_OK )
        {
		CString strCookie(bstrCookie);
		CFile myfile("1.txt",CFile::modeWrite|CFile::modeCreate);
		myfile.Write(strCookie,strCookie.GetLength());
		myfile.Close();
		//::MessageBox(NULL, strCookie,"当前Cookie", MB_ICONINFORMATION);
		
		  }
		lpDocument2->put_cookie(NULL);
		pBody->Release();
        lpDocument2->Release();
    }
    lpDispatch->Release();

3.关于一些消息映射

往往我们要等待网页载入完毕才干进行一些操作。微软为我们提供了丰富的消息映射,在ClassWizard中能够看到


就写到这里吧,用到的时候再去研究。

菜鸟言论,仅供娱乐!

原文地址:https://www.cnblogs.com/claireyuancy/p/6719963.html