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

解決


清明  2002-12-18 22:57:37  No: 76701  IP: [192.*.*.*]

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 10:04:10  No: 76702  IP: [192.*.*.*]

あ、あれ? それで良いはずなのですけれども。。。(^^;)
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 12:39:46  No: 76703  IP: [192.*.*.*]

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

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

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


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

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

編集 削除
清明  2002-12-20 09:12:26  No: 76704  IP: [192.*.*.*]

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

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

編集 削除