WebBrowserコントロールでCtrl+Pキーをさせないようにするには?

解決


はま  2005-03-04 23:01:33  No: 88680

WebBrowserコントールを使用していますが、Ctrl+Pキーを押下した際の印刷ダイアログを表示させないようにしたいのですが、どのようにすればよいのでしょうか?だれか教えてください。
IDocHostUIHandler_TranslateAccelerator
にて、Ctrl+Nキー(新規ウィンドウを開く)をキャンセルすることはできましたが、同じやりかたでは印刷ダイアログが表示されるのを防げませんでした。


  2005-03-04 23:10:08  No: 88681

何をお使いでしょう?

VB6.0なら、フォームにKeyDownイベントで拾ってやれば、大丈夫ですけど・・・。


はま  2005-03-04 23:12:46  No: 88682

FormのKeyPreviewプロパティをTrueにした後、下記のようなコーディングを行いましたが、ダメでした。コーディング方法が悪いのでしょうか?

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

    If TypeOf Screen.ActiveControl Is WebBrowser Then
        'MsgBox "KeyCode=" & KeyCode & " Shift=" & Shift
        If (Shift Or vbCtrlMask) _
            And (KeyCode = vbKeyP) Then
            'MsgBox "KeyCode=" & KeyCode & " Shift=" & Shift
            Shift = 0
            KeyCode = 0
        End If
    End If
End Sub


はま  2005-03-04 23:13:51  No: 88683

すみません、書き忘れました。
VB6.0
です。


  2005-03-04 23:22:11  No: 88684

ちなみに、ヘルプは読まれました?
サンプルが載ってますので、ご参考までに。

それと、提示して頂いたコードから二点ほど。
>'MsgBox "KeyCode=" & KeyCode & " Shift=" & Shift
メッセージボックスはコメント化してますけど、実際はシングルクォテーションは外してますよね?

>Shift Or vbCtrlMask
・・・これは?
Orじゃなくて、Andではないですか?


  2005-03-04 23:25:09  No: 88685

連続レスごめんなさい。
ヘルプから抜粋しました。念のため。

>該当するキーが押された場合は、引数shiftとビットマスクをAnd 演算子で結合した値が 0 より大きくなります。
>次の例に示すように、該当する補助キーが押されたことが分かるような名前の一時的な整数変数に、比較結果を保存してください。

>ShiftDown = (Shift And vbShiftMask) > 0

以上です。


はま  2005-03-04 23:46:09  No: 88686

すみません、けっきょくKeyDownでは解決できませんでした。(というか良く分からないまま、あきらめてしまいました。)
が、IDocHostUIHandler_TranslateAcceleratorの方で解決できました。
影さん、ご丁寧におしえていただきましてありがとうございました。


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

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






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