4

私が参照している右クリック イベントを確認するには、このビデオを参照してください。

Windows フォーム アプリケーションにズーム ボタンを追加するアプリケーションに取り組んでいます。ユーザーがボタンに触れると、アプリケーションはウィンドウを継続的にズームする必要があります。これは、ボタンのマウス ダウン イベントを監視することで機能します。マウスが押されている間、タイマーはビューを拡大し続けます。これは、最初のタッチ後にユーザーの指がスライドする限り、正常に機能します。ただし、ユーザーがずっと 1 つの場所を押し続けると、小さな待機円が表示されてから、右クリック イベントが発生します。

このリンクからアプリケーションにコードを追加しました。

public bool PreFilterMessage(ref Message m)
{
    // Filter out WM_NCRBUTTONDOWN/UP/DBLCLK
    if (m.Msg == 0xA4 || m.Msg == 0xA5 || m.Msg == 0xA6) return true;
    // Filter out WM_RBUTTONDOWN/UP/DBLCLK
    if (m.Msg == 0x204 || m.Msg == 0x205 || m.Msg == 0x206) return true;
    return false;
}

このコードは、結果の右クリック イベントを無効にします。ただし、円は引き続き発生し、マウスダウン イベントは発生しません。物理的なタッチをマウスダウンとしてカウントし、右クリックプロセスを開始しない方法はありますか?


編集Control Panel -> Pen and Touchに移動して、右クリック機能のプレスアンドホールドを無効にしようとしました。これにより、スピン アイコンが無効になりましたが、ユーザーが指を少し動かさない限り、マウス ダウンは発生しません。ユーザーがボタンを押したままにしなければならない理由がわかりません。

4

2 に答える 2

0

タッチ時に表示される円は、右クリック用に Windows 7 で導入されたジェスチャです。これはプレス アンド ホールドと呼ばれます。

このジェスチャを完全に無効にしたい場合はSetGestureConfig、フォームの初期化時に関数を呼び出してオペレーティング システムに通知する必要があります。この関数を使用すると、コントロールでサポートされているジェスチャを明示的に指定できます。

于 2015-12-18T00:52:41.117 に答える