在 MFC(Microsoft Foundation Classes)中,CHtmlView 类提供了一个名为 OnNewWindow2 的公共方法,用于处理浏览器控件请求新窗口(新标签页)的事件。

具体而言,OnNewWindow2 方法是处理 DISPID_NEWWINDOW2 事件的函数。在 CHtmlView 中,该方法的原型通常如下:
afx_msg void OnNewWindow2(LPDISPATCH* ppDisp, BOOL& bCancel);

参数说明:
  •  ppDisp: 一个指向 IDispatch 接口指针的指针,用于接收新窗口的 IDispatch 接口。

  •  bCancel: 一个布尔值,用于指示是否取消新窗口的请求。


你可以重写这个方法,以便在浏览器控件请求新窗口时执行特定的操作。例如:
void CYourHtmlViewClass::OnNewWindow2(LPDISPATCH* ppDisp, BOOL& bCancel)
{
    // 在此处处理新窗口请求的逻辑

    // 创建一个新的 CHtmlView 对象,将其指针传递给 ppDisp
    // 可以通过这个新的 CHtmlView 对象实现自定义的新窗口行为

    // 设置 bCancel 为 TRUE 可以取消新窗口请求
    // 设置 bCancel 为 FALSE 则允许新窗口打开
    bCancel = FALSE;

    CView::OnNewWindow2(ppDisp, bCancel);  // 调用基类的方法
}

请注意,具体的方法原型和实现可能会因不同的 MFC 版本而有所不同。因此,在使用时最好参考你所用 MFC 版本的官方文档或相应的帮助文件以获取准确的信息。


转载请注明出处:http://www.zyzy.cn/article/detail/18218/MFC/CHtmlView