求助,关于非MFC环境下如何挂接IWebBrowser2的新窗口事件
求助,关于非MFC环境下如何挂接IWebBrowser2的新窗口事件
我的环境是使用duilib界面库,因为没有使用MFC,所以不知道如何处理IWebBrowser2的新窗口事件
请知道的各位指点指点
- C/C++ code
void CBrowserWnd::Init(){ CActiveXUI* pActiveXUI = static_cast<CActiveXUI*>(paint_manager_.FindControl(_T("ie"))); if( pActiveXUI ) { IWebBrowser2* pWebBrowser = NULL; pActiveXUI->GetControl(IID_IWebBrowser2, (void**)&pWebBrowser); if( pWebBrowser != NULL ) { pWebBrowser->Navigate(L"http://www.baidu.com",NULL,NULL,NULL,NULL); pWebBrowser->Release(); } }}这样子可以正常浏览网页,但是新窗口弹出的界面该如何监控呢?
[解决办法]
IWebBrowser2事件要注册到系统,参考BHO开发。
[解决办法]
通过连接点事件,挂接DWebBrowserEvents2 事件,然后就能处理浏览器的事件了
http://m426.mail.qq.com/cgi-bin/frame_html?sid=i_pqs5_teOv4VUsb&r=0176a3d132cd2c74dcdacf186cdfde27
[解决办法]
找到了
Handling HTML Element Events
http://msdn.microsoft.com/en-us/library/bb508508(v=vs.85).aspx
里面提到2种解决方案 MFC && ATL——
Handling Events using MFC
Handling Events using ATL
关键类和宏有了,再多我也不清楚了