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
などと悪あがきしてみましたけれど・・・(^^;;
よろしくお願いします!!
あ、あれ? それで良いはずなのですけれども。。。(^^;)
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
もしかして、常に処理をキャンセルさせているのでしょうか?
> Cancel = True
CancelをTrueにすると、新しいページで開かせるどころか、
開く処理そのものがキャンセルされてしまいますよ。
# ちなみに、NewWindowイベントの場合は、Processed 引数を
# Trueにする事で、開く処理をキャンセルさせる事ができます。
NewWindow2イベントのCancel引数をFalseのままにしておけば、
開く処理自体はそのまま実行されます。
ただし、そのままだと新たにIEが実行されてしまうので、ppDispに
別のブラウザ(WebBrowser / InternetExplorerのいずれか)を設定する事で、
指定したウィンドウに表示させる事ができる…という仕組みです。
>CancelをTrueにすると、新しいページで開かせるどころか、
>開く処理そのものがキャンセルされてしまいますよ。
ありがとうございます!!
一週間悩んだ問題がやっととけました!!
検索サイトで何度もこのサイトに引っかかったのですけれど、
簡単に質問するのも・・・と控えていたのですが、思い切って聞いてみてよかったです。