MFC C++监听网页窗口的点击超链接跳转问题(即打开新的浏览器窗口)
2015-06-10 13:31
429 查看
使用MFC的CHtmlView类,注册ON_EVENT事件进行监听。
实现的基本代码是:
BEGIN_EVENTSINK_MAP(CxxxView, CHtmlView)
ON_EVENT(CxxxView, AFX_IDW_PANE_FIRST, DISPID_NEWWINDOW3, CxxxView::OnNewWindow3, VTS_PDISPATCH VTS_PBOOL VTS_UI4 VTS_BSTR VTS_BSTR)
END_EVENTSINK_MAP()
void CxxxView::OnNewWindow3( LPDISPATCH* ppDisp, BOOL* Cancel, DWORD dwFlags, LPCTSTR bstrUrlContext, LPCTSTR bstrUrl )
{
*Cancel = TRUE;//捕抓到新窗口的逻辑处理。
Navigate2(bstrUrl);//一般是会为这个uri加上单点登录的信息。LtpToken,session之类。
}
如果还有不懂可以参考老kk的CJSInteractiveHtmlView接口类
还可以使用CHtmlView进行与js的交互。调用js函数或者提供函数给js进行调用。
提供函数给js调用的实现:http://www.cnblogs.com/anzhihun/archive/2013/01/04/2843970.html
实现的基本代码是:
BEGIN_EVENTSINK_MAP(CxxxView, CHtmlView)
ON_EVENT(CxxxView, AFX_IDW_PANE_FIRST, DISPID_NEWWINDOW3, CxxxView::OnNewWindow3, VTS_PDISPATCH VTS_PBOOL VTS_UI4 VTS_BSTR VTS_BSTR)
END_EVENTSINK_MAP()
void CxxxView::OnNewWindow3( LPDISPATCH* ppDisp, BOOL* Cancel, DWORD dwFlags, LPCTSTR bstrUrlContext, LPCTSTR bstrUrl )
{
*Cancel = TRUE;//捕抓到新窗口的逻辑处理。
Navigate2(bstrUrl);//一般是会为这个uri加上单点登录的信息。LtpToken,session之类。
}
如果还有不懂可以参考老kk的CJSInteractiveHtmlView接口类
还可以使用CHtmlView进行与js的交互。调用js函数或者提供函数给js进行调用。
提供函数给js调用的实现:http://www.cnblogs.com/anzhihun/archive/2013/01/04/2843970.html
相关文章推荐
- c++ Getline()的问题
- 线性链表的c语言实现
- OpenGL Tips: 在Visual C++中调用FreeGLUT
- C++ STL之map详解
- const in C and C++
- 【高级算法】禁忌搜索算法解决3SAT问题(C++实现)
- C语言变参数函数
- C语言变参数函数
- C语言变参数函数
- C++之类的static成员
- C++内存模型
- DEV-CPP配置EGE
- c++中的 extern "C"用法
- c++ 鼠标切换形状
- C++ 中的智能指针
- Graham's Scan法求解凸包问题(C++)
- C++构造函数为什么不能是虚函数
- 在C++中嵌入V8
- C++中的哈希容器unordered_map使用示例
- C++中四种类型转换运算符的使用方法