0

DISPID_NEWWINDOW2 に入れた IWebBrowser2 を非表示にしようとしています。

しかし、運が悪い:-(

IWebBrowser2 は、ナビゲート後に常に表示されます。そのため、DISIP_ONVISIBLE を処理し、put_Visible(VARIANT_FALSE) を呼び出して IWebBrowser2 を非表示にしようとしていますが、このイベントは自分で put_Visible() を呼び出した場合にのみ受け取ります...

私の仕事を解決する方法は?

助けてくれてありがとう。

4

1 に答える 1

0

NewWindow2またはを実装し、 の新しいインスタンスにNewWindow3設定します。 この新しいインスタンスが表示されないようにするには、put_Visible を使用するか、コントロールのコンテナーを呼び出します。ポップアップを完全に無効にするように 設定することもできます。 実装すると、宛先 URL が表示されます。ppDispIWebBrowser2
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 に答える