有关于mfc webbrowser插件的使用

来源:互联网 发布:office2011 for mac 编辑:程序博客网 时间:2024/05/16 10:17

转:http://blog.csdn.net/yiyefangzhou24/article/details/25769141

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

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

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


可以看到微软提供了很多ActiveX的插件供我们选择。


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


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

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

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





关于WebBrowser几个问题

1.关于如何取得这个网页的内容

[cpp] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. HRESULT hr;  
  2.     IDispatch* lpDispatch;  
  3.     lpDispatch = m_WebBrower.GetDocument();  
  4.     IHTMLDocument2* lpDocument2;  
  5.     hr = lpDispatch->QueryInterface(IID_IHTMLDocument2, (PVOID*)&lpDocument2);  
  6.     if ( hr == S_OK )  
  7.     {  
  8.           
  9.           
  10.         IHTMLElement * pBody;  
  11.         lpDocument2->get_body(&pBody);  
  12.         BSTR html;//存放html源代码  
  13.         CComBSTR html_t;//用于将BSTR转换为cout可以处理的字符串  
  14.         pBody->get_innerHTML(&html);  
  15.         CString strCookie(html);  
  16.         CFile myfile("1.html",CFile::modeWrite|CFile::modeCreate);  
  17.         myfile.Write(strCookie,strCookie.GetLength());  
  18.         myfile.Close();  
  19.         pBody->Release();  
  20.         lpDocument2->Release();  
  21.     }  
  22.     lpDispatch->Release();  

2.有关于如何取得这个网页的cookie

[cpp] view plain copy
 在CODE上查看代码片派生到我的代码片
  1.   HRESULT hr;  
  2.   IDispatch* lpDispatch;  
  3.   lpDispatch = m_WebBrower.GetDocument();  
  4.   IHTMLDocument2* lpDocument2;  
  5.   hr = lpDispatch->QueryInterface(IID_IHTMLDocument2, (PVOID*)&lpDocument2);  
  6.   if ( hr == S_OK )  
  7.   {  
  8.   
  9.       hr = lpDocument2->get_cookie(&bstrCookie);  
  10.       if ( hr == S_OK )  
  11.       {  
  12. CString strCookie(bstrCookie);  
  13. CFile myfile("1.txt",CFile::modeWrite|CFile::modeCreate);  
  14. myfile.Write(strCookie,strCookie.GetLength());  
  15. myfile.Close();  
  16. //::MessageBox(NULL, strCookie,"当前Cookie", MB_ICONINFORMATION);  
  17.   
  18.   }  
  19. lpDocument2->put_cookie(NULL);  
  20. pBody->Release();  
  21.       lpDocument2->Release();  
  22.   }  
  23.   lpDispatch->Release();  

3.关于一些消息映射

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


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

菜鸟言论,仅供娱乐!

0 0