在头文件中加入:
void NewWindow3( IDispatch **ppDisp, VARIANT_BOOL *Cancel, DWORD dwFlags, BSTR bstrUrlContext, BSTR bstrUrl ); DECLARE_EVENTSINK_MAP()
首先在CPP文件中加入
#include <exdisp.h> //For IWebBrowser2* and others #include <exdispid.h> #include <Mshtml.h> #include <Mshtmdid.h> #include <shobjidl.h> BEGIN_EVENTSINK_MAP(CLhpHtmlView, CHtmlView) ON_EVENT(CLhpHtmlView, AFX_IDW_PANE_FIRST,273,NewWindow3,VTS_PDISPATCH VTS_PBOOL VTS_I4 VTS_BSTR VTS_BSTR) END_EVENTSINK_MAP()
实现:
void CLhpHtmlView::NewWindow3( IDispatch **ppDisp, VARIANT_BOOL *Cancel, DWORD dwFlags, BSTR bstrUrlContext, BSTR bstrUrl ) { *Cancel = TRUE; Navigate2( (LPCTSTR)bstrUrl , NULL , NULL ); return; }
本文介绍了一种在浏览器中拦截新窗口打开的方法,并通过修改CLhpHtmlView类实现了这一功能。具体实现包括重写NewWindow3事件处理函数,阻止新窗口打开并导航到指定URL。
2332

被折叠的 条评论
为什么被折叠?



