在MFC对话框中显示网页

用到ActiveX 控件,向对话框里面插入一个 WebBrowser控件,之后使用就可以了!

利用WebBrowser控件创建自己的浏览器
①新建一个基于对话框的工程,命名为test,然后在对话框上单击右键,选择
Insert ActiveX Control…在弹出的对话框中选择MicroSoft Web浏览器,点击OK。
此时对话框上已经出现了WebBrowser控件,调整它的大小以适合对话框的大小。

②选择WebBrowser控件,点击View/ClassWizard,选择Member Variables,单击
Add Variable按钮,此时会弹出两个对话框,均点击确定即可。然后给该控件加
入一个变量,我们把它命名为m_ctrlWeb。

③在ClassWizard中选择OnInitDialog()函数,在里面加入如下代码:

m_ctrlWeb.Navigate("http://www.baidu.com", NULL, NULL, NULL, NULL);

第一个参数即你要浏览的URL地址,可以是一个文件,也可以是一个地址
(如:http://www.baidu.com)

1.窗口大小,位置?

   进入资源窗口,设置对话框Minimine Box属性 为True

   设置窗口最大化和控件位置

[cpp]  view plain copy
  1. void CbrowserDlg::OnBnClickedButtonBaidu()  
  2. {  
  3.     // TODO: 在此添加控件通知处理程序代码  
  4.     ShowWindow(SW_SHOWMAXIMIZED);   // 窗口最大化  
  5.     CRect rect;     
  6.     GetClientRect(&rect);  
  7.     // 设置WebBrowser控件位置  
  8.     m_webBrowser.MoveWindow(100, 0, rect.Width() - 100, rect.Height());   
  9.     // 导航至百度  
  10.     VARIANT vInfo;  
  11.     m_webBrowser.Navigate("www.baidu.com", &vInfo, &vInfo, &vInfo, &vInfo);  
  12. }  
 

 

2.如果你试一下www.baidu.com.sb,你会发现会弹出脚本错误对话框!

   去资源窗口设置webbrowser控件的Silent属性为True.

   还有可能会弹出调试对话框,这得在IE浏览器属性里设置:

   打开IE--->[工具]--->[Internet选项]--->[高级]--->[浏览]

   勾上[禁用脚本调试(Internet Explorer)] [禁用脚本调试(其他)]即可

3.弹出新的网页,怎么又用IE打开呢?

   要想不用IE打开,在程序窗口里显示,得响应NewWindow3事件

进入资源窗口,再至webbrowser控件属性窗口,点击控件事件(闪电状图标)

找到NewWindow3,点击后右边有添加NewWindow3Explorer1,代码会自动生成

再在代码里添加导航的新URL

[cpp]  view plain copy
  1. void CbrowserDlg::NewWindow3Explorer1(LPDISPATCH* ppDisp, BOOL* Cancel, unsigned long dwFlags, LPCTSTR bstrUrlContext, LPCTSTR bstrUrl)  
  2. {  
  3.     // TODO: 在此处添加消息处理程序代码  
  4.     * Cancel = TRUE;  
  5.     CString strUrl;  
  6.     strUrl = bstrUrl;  
  7.     VARIANT vInfo;  
  8.     m_webBrowser.Navigate(strUrl, &vInfo, &vInfo, &vInfo, &vInfo);  
  9. }  

如在新窗口中打开链接和在新标签中打开链接是两个不同的事件(NewWindow2,NewWindow3)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值