Webbrowserで開く新しいウィンドウを指定するには?

解決


清明  2002-12-19 07:57:37  No: 76701

VB6.0を使っています。
Webbrowserコントロールで新しいページで開いた場合、ieではなくwebbrowser(2)に表示したいのですが、よくわからなくなってしまいました。

過去ログを読んだところ、

Private Sub brwWebBrowser_NewWindow2(index As Integer, ppDisp As Object, Cancel As Boolean) 
Cancel = True
End Sub

ここのppDispを利用すれば新しく開く場所を指定できるようなのですが、これをどうしたらいいのかわかりません。

Set ppDisp = webbrowser(2).Object

などと悪あがきしてみましたけれど・・・(^^;;
よろしくお願いします!!


魔界の仮面弁士  2002-12-19 19:04:10  No: 76702

あ、あれ? それで良いはずなのですけれども。。。(^^;)
ppDispを指定しても、指定した物とは異なる画面(IE等)で開かれてしまうのでしょうか?

Private Sub WebBrowser1_NewWindow2(index As Integer, ppDisp As Object, Cancel As Boolean)
    If index = 0 Then
        Me.WebBrowser1(1).RegisterAsBrowser = True
        Set ppDisp = Me.WebBrowser1(1).Object
    End If
End Sub


魔界の仮面弁士  2002-12-19 21:39:46  No: 76703

もしかして、常に処理をキャンセルさせているのでしょうか?
> Cancel = True

CancelをTrueにすると、新しいページで開かせるどころか、
開く処理そのものがキャンセルされてしまいますよ。

# ちなみに、NewWindowイベントの場合は、Processed 引数を
# Trueにする事で、開く処理をキャンセルさせる事ができます。

NewWindow2イベントのCancel引数をFalseのままにしておけば、
開く処理自体はそのまま実行されます。

ただし、そのままだと新たにIEが実行されてしまうので、ppDispに
別のブラウザ(WebBrowser / InternetExplorerのいずれか)を設定する事で、
指定したウィンドウに表示させる事ができる…という仕組みです。


清明  2002-12-20 18:12:26  No: 76704

>CancelをTrueにすると、新しいページで開かせるどころか、
>開く処理そのものがキャンセルされてしまいますよ。

ありがとうございます!!
一週間悩んだ問題がやっととけました!!
検索サイトで何度もこのサイトに引っかかったのですけれど、
簡単に質問するのも・・・と控えていたのですが、思い切って聞いてみてよかったです。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加