0

我尝试隐藏我放入 DISPID_NEWWINDOW2 的 IWebBrowser2。

但没有幸运:-(

IWebBrowser2 在导航后始终可见。这就是为什么我尝试处理 DISIP_ONVISIBLE 并调用 put_Visible(VARIANT_FALSE) 来隐藏 IWebBrowser2 但这个事件只有在我自己调用 put_Visible() 时才会收到......

如何解决我的任务?

谢谢你的帮助。

4

1 回答 1

0

实现NewWindow2orNewWindow3并设置ppDispIWebBrowser2.
要确保这个新实例不可见,请使用 put_Visible 或调用ShowWindow(SW_HIDE)控件的容器。
您还可以设置*Cancel = VARIANT_TRUE完全禁用弹出窗口。
实施NewWindow3将为您提供目标网址。

STDMETHODIMP CMyBrowser::OnNewWindow3(IDispatch **ppDisp, 
                                      VARIANT_BOOL *Cancel, 
                                      DWORD dwFlags, 
                                      BSTR bstrUrlContext, 
                                      BSTR bstrUrl)
{
  // spWebBrowser = create a newly instance of IWebBrowser2
  ppDisp = (IDispatch*)spWebBrowser;
  return S_OK;
}
于 2011-12-26T11:23:24.607 回答