码迷,mamicode.com
首页 > Windows程序 > 详细

Chtmlview拦截新窗口的生成-NewWindow3

时间:2015-05-11 19:37:35      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:

在使用chtmlview编写自己的浏览器的时候,如果不想点击某些链接生成新窗口,直接在原窗口或者自己新建窗口显示网页的时候,使用NewWindow3拦截并获取网页URL

1.首先在类的头文件中加入以下代码

void    NewWindow3(IDispatch **ppDisp, VARIANT_BOOL *Cancel, DWORD dwFlags, BSTR bstrUrlContext, BSTR bstrUrl);
DECLARE_EVENTSINK_MAP()

2.在cpp中加入以下代码

BEGIN_EVENTSINK_MAP(MyHtmlView, CHtmlView)
    ON_EVENT(MyHtmlView, AFX_IDW_PANE_FIRST, 273, NewWindow3, VTS_PDISPATCH VTS_PBOOL VTS_I4 VTS_BSTR VTS_BSTR)
END_EVENTSINK_MAP()

3.函数的实现

void MyHtmlView::NewWindow3(IDispatch **ppDisp, VARIANT_BOOL *Cancel, DWORD dwFlags, BSTR bstrUrlContext, BSTR bstrUrl)
{
    *Cancel = TRUE;
    Navigate2(bstrUrl);
}

其中,将Cancel赋值为TRUE,将不会自动用默认浏览器打开网页。

bstrUrl就是即将打开的网页URL

将得到的bstrUrl用来直接转入或者自己创建新窗口吧。

Chtmlview拦截新窗口的生成-NewWindow3

标签:

原文地址:http://www.cnblogs.com/macher/p/4495234.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!