webbrowser 不弹出新窗口同时在原窗口打开新URL

时间:2021-04-28 09:41:08

在Webbrowser中有时会自动弹出新的窗口打开新的网页,但是我们不需要这样的功能,那么如何不弹出新IE窗口而且在原来的webbrowser中打开新网页呢?按如下步骤即可解决。

1 添加IDocHostUIHandler2 接口的 TranslateUrl 事件函数

    在TranslateUrl 函数中记录下第二个如参的值,如:m_strNewUrl=CString(pchURLIn);

2 添加 NewWindow2 Event 事件消息函数。

    在NewWindow2 函数中,添加代码:

    *Cancel=TRUE;

    Navigate(m_strNewUrl,NULL,NULL,NULL,NULL);

    当网页发生弹出新窗口时,新执行的是TranslateUrl 事件函数,然后是NewWindow2 事件函数。在TranslateUrl 函数中记录下了新的URL,在NewWindow2函数中取消打开新窗口,并且在本窗口打开新网页。