WebBrowserコントロールがアクティブ時に[Ctrl+N]や[Ctrl+P]を押すと、IEが立ち上がったり印刷ダイアログが出てしまいます。
WebBrowserコントロールではキーの制御はできないのでしょうか?
IDocHostUIHandlerインターフェイスを実装することで対応させるのが一般的かな?
この場合なら、TranslateAcceleratorメソッドで WM_KEYDOWNを受信して、
Ctrl + N の組み合わせだった時に、戻り値に 0(=S_OK)を返せば良いかと。
便乗で質問させて下さい。
> IDocHostUIHandlerインターフェイスを実装することで対応・・・
■WebBrowser上で右クリックを禁止するには?
魔界の仮面弁士 2003/11/03(月) 12:54:41
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200311/03110001.txt
にある魔界の仮面弁士 さんのサンプルを参考にするんだと思いますが、
> TranslateAcceleratorメソッドで WM_KEYDOWNを受信して、
> Ctrl + N の組み合わせだった時に、戻り値に 0(=S_OK)を返せば良いかと。
「TranslateAcceleratorメソッド」とは、上記サンプル内の
Private Sub IDocHostUIHandler_TranslateAccelerator()
のことでしょうか?
だとすると、Subプロシージャで、戻り値(S_OK)を返すにはどうしたら
いいんでしょうか?
宜しくお願いします。
> 便乗で質問させて下さい。
できれば便乗は避けて欲しかったです…。(^_^;)
元質問者の環境すら、.NETかVB6なのか書かれていない状況だったので、
そこにきて、さらに環境不明な質問が追加されるとなると、話が
ややこしくなってしまいますので。
で、相手が.NETであるならば、santa martaさんのところが参考になるでしょう。
http://d.hatena.ne.jp/santamarta/20050216
なお、IDocHostUIHandlerインターフェイスの詳細については、SDKで確認してください。
(WebBrowserの場合、細かい機能まできちんと使おうとすると、ある程度以上のCOMの知識が要求されます)
> 「TranslateAcceleratorメソッド」とは、上記サンプル内の
> Private Sub IDocHostUIHandler_TranslateAccelerator()
> のことでしょうか?
私のサンプルを使うなら、たしかに Sub IDocHostUIHandler_TranslateAccelerator です。
ただ、VB6の場合は、私のサンプルを使うよりも、WBCustomizerを使った方が手軽だと思いますよ。
http://support.microsoft.com/kb/183235/
http://msdn.microsoft.com/downloads/samples/internet/browser/WBcustomizer/default.asp
> だとすると、Subプロシージャで、戻り値(S_OK)を返すにはどうしたら
> いいんでしょうか?
Subなので、戻り値という形では返せません。
ただ、そのサンプルを使う場合は、そのまま何も処理しなければ、全てのキー入力が
握りつぶされるので特に問題は無いでしょう。一部のキー入力だけ握りつぶしたい場合は、
その他のキー入力があった時に Err.Raise メソッドを発行すれば、通常のキー処理として
扱われるかと思います。
はじめまして。マロンと申します。
私はWebBrowserについてあまり詳しくありませんが、
(実際WebBrowserに関して、こちらでいろいろと質問をさせて頂いてます)
下記のようなコードでまあ目的は達成できるみたいですよ。
Private CustomWB As WBCustomizer
Set CustomWB = New WBCustomizer
With CustomWB
.EnableAccelerator vbKeyN, vbKeyControl, False 'ctrl+N無効
.EnableAccelerator vbKeyP, vbKeyControl, False 'ctrl+P無効
.EnableContextMenus = False '右クリック無効
.EnableAllAccelerators = True '上記のすべての設定を有効に かな?
Set .WebBrowser = WebBrowser1
End With
当然DLLが必要になる訳ですが、
http://www.cyf-kr.edu.pl/ftp/softlib/full.html
というサイトの
19980921 S21125
という行から「WBCUSTOM.EXE」をダウンロードされると、その中にサンプルコードやDLLが
含まれてます。
上記のコードは、このサンプルから余分な処理を省いて簡単にまとめたものです。
ご参考まで。
混乱させる様な便乗質問をした事をお詫び致します。
今更ですが、私の質問は無視して下さい。
ツイート | ![]() |