掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
WebBrowser上で右クリックを禁止するには? (ID:80215)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
WBCustomizer.dll http://support.microsoft.com/default.aspx?scid=kb;en-us;183235 > コンパイルして生成しなければならないということなのでは そうなります。 WebBrowserにおけるショートカット(Ctrl+Nなど)や右クリックの動作を変更するには、 アプリ側でコールバック用のIDocHostUIHandlerインターフェイスを実装しておき、 それを、ICustomDocインターフェイスのSetUIHandlerで登録するという手順になります。 そして、ICustomDoc.ShowContextMenuでS_OKを返すかS_FALSEを返すかで、 規定のポップアップを表示させるか否かを制御できるというわけです。 > VC++持って無い人はどうすることもできないのでしょうか? VBでは、インターフェイスを明示的に宣言するための手段が用意されていませんので、 そういった意味では、VB単体では基本的には無理…という結論になります。 別途用意する言語がVC++である必要はありませんが、サンプルが提供されている以上、 VC++の方が望ましいでしょう。VC++を持っている人にコンパイルしてもらって下さい。 なお、代替手段として、WebBrowser.Documentからのoncontextmenuイベントを キャンセルさせるようにする……という方法もあります。 MSHTML.TLBを参照設定した上で、こんな感じですね。 Option Explicit Private WithEvents Document As MSHTML.HTMLDocument Private Sub Command1_Click() 'ボタンを押すと、右クリックが禁止されます。 Set Document = WebBrowser1.Document End Sub '右クリックされた時に呼ばれるイベント Private Function Document_oncontextmenu() As Boolean 'Trueを返すと、WebBrowserの規定の動作が行われます。 'Falseを返した場合は、WebBrowserは何もしません。 Document_oncontextmenu = False End Function Private Sub Form_Load() WebBrowser1.Navigate2 "http://www.google.co.jp/" End Sub これならば、VBだけで行う事が可能ですが、フレームセットを使ったページの場合は、 各フレームごとに oncontextmenu を握りつぶす必要がありますし、ページが切り替わるたびに WithEvents変数への再割り当てが必要になります。また、Setするタイミングの問題もありますので、 可能であれば、IDocHostUIHandlerを実装する方向で考えた方が良いでしょう。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.