MFC 屏蔽webBrowser打开网页的弹窗

void CansDlg::NewWindow3Explorer1(LPDISPATCH* ppDisp, BOOL* Cancel, unsigned long dwFlags, LPCTSTR bstrUrlContext, LPCTSTR bstrUrl)
{
	// TODO:  在此处添加消息处理程序代码
	
	//不打开新窗口
	*Cancel = TRUE;
}

方法II:重载Web控件所在窗口的方法“OnAmbientProperty”
//[说明]此函数为主窗口方法重载,可以屏蔽打开网页的所有脚本运行及弹窗,故要慎用.
#include "mshtmdid.h"
BOOL CansDlg::OnAmbientProperty(COleControlSite* pSite, DISPID dispid, VARIANT* pvar)
{
	// TODO:  在此添加专用代码和/或调用基类
	
	if (dispid == DISPID_AMBIENT_DLCONTROL)
	{
		pvar->vt = VT_I4;
		pvar->lVal = DLCTL_NO_RUNACTIVEXCTLS | DLCTL_NO_SCRIPTS | DLCTL_NO_JAVA | DLCTL_NO_DLACTIVEXCTLS
		           | DLCTL_NO_FRAMEDOWNLOAD | DLCTL_NO_BEHAVIORS | DLCTL_NO_FRAMEDOWNLOAD | DLCTL_SILENT;
		return TRUE;
	}
	
	return CDialogEx::OnAmbientProperty(pSite, dispid, pvar);
}

MSDN中说了:
DLCTL_BGSOUNDS 浏览器组件播放同文档相联的背景声音; 
DLCTL_DLIMAGES 浏览器组件从服务器下载图形; 
DLCTL_DOWNLOADONLY 浏览器组件下载页面但不显示; 
DLCTL_FORCEOFFLINE 浏览器组件工作在脱机方式。通过 URLMON 提出请求时, 即使计算机连接了互联网,也设置 BINDF_OFFLINEOPERATION 标志; 
DLCTL_NO_BEHAVIORS 浏览器组件不执行任何行为; 
DLCTL_NO_CLIENTPULL 浏览器组件不执行任何客户端的 pull 操作; 
DLCTL_NO_DLACTIVEXCTLS 浏览器组件不下载文档中的任何 ActiveX 控件; 
DLCTL_NO_FRAMEDOWNLOAD 浏览器组件对包含框架的页面进行语法分析但不下载任何帧, 同时忽略框架,不翻译任何 frame 标记; 
DLCTL_NO_JAVA浏览器组件不执行任何 Java applet; 
DLCTL_NO_METACHARSET 浏览器组件隐藏文档中的 META 元素指示的字符集; 
DLCTL_NO_RUNACTIVEXCTLS 浏览器组件不执行文档中的任何 ActiveX 控件; 
DLCTL_NO_SCRIPTS 浏览器组件不执行任何脚本; 
DLCTL_OFFLINE 与 DLCTL_OFFLINEIFNOTCONNECTED 相同; 
DLCTL_OFFLINEIFNOTCONNECTED 如果未连接互联网,浏览器组件将以脱机方式工作。通过 URLMON 提出请求时,即使计算机连接了互联网,也设置 BINDF_GETFROMCACHE_IF_NET_FAIL 标志; 
DLCTL_PRAGMA_NO_CACHE 浏览器组件迫使请求发送给服务器并忽略代理,即使代理指明 数据是最新的也是如此。通过 URLMON 提出请求时,设置 BINDF_PRAGMA_NO_CACHE 标志; 
DLCTL_RESYNCHRONIZE 浏览器组件忽略缓存中的数据并向服务器请求更新。如果服务器指明 缓存中的数据是更新了的则使用缓存数据。通过 URLMON 提出 请求时,设置 BINDF_RESYNCHRONIZE 标志; 
DLCTL_SILENT 浏览器组件不显示用户界面。通过 URLMON 提出请求时,设置 BINDF_SILENTOPERATION 标志; 
DLCTL_URL_ENCODING_DISABLE_UTF8 浏览器组件禁止 UTF-8 编码; 
DLCTL_URL_ENCODING_ENABLE_UTF8 浏览器组件允许 UTF-8 编码; 
DLCTL_VIDEOS 浏览器组件播放文

 

                
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值