フォーム内のすべてのコントロールにマウスクリックイベントを配置することなく、マウスの左ボタンをクリックするとサウンドが再生されます。これを達成する方法はありますか?C#アプリケーション全体の左マウスクリックイベント
答えて
を行う必要があります。
public partial class Form1 : Form, IMessageFilter {
public Form1() {
InitializeComponent();
Application.AddMessageFilter(this);
this.FormClosed += delegate { Application.RemoveMessageFilter(this); };
}
public bool PreFilterMessage(ref Message m) {
// Trap WM_LBUTTONDOWN
if (m.Msg == 0x201) {
System.Diagnostics.Debug.WriteLine("BEEP!");
}
return false;
}
}
これは、メインのプロジェクトだけでなく、プロジェクト内のどのフォームでも機能します。
驚くばかり!ありがとうございました!ああ、私にとっては左マウスボタンの値は 'm.Msg == 0x0201'でした – Spidermain50
This project(あなたのフォームにあるものだけでなく、グローバルなマウスイベントをフックするので)あなたのニーズには余計かもしれませんが、必要なものの基礎を示していると思います。
マウスやキーボードをグローバルにフックすることは時折役立ちますが、ローカルで処理できるものをグローバルにフックすることはありません。 –
これは、それがIMessageFilterをインタフェースとフォーカスを持つコントロールにディスパッチされる前に、Windowsの通知を検出することができますトリック
const int WM_PARENTNOTIFY = 0x210;
const int WM_LBUTTONDOWN = 0x201;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_LBUTTONDOWN || (m.Msg == WM_PARENTNOTIFY && (int)m.WParam == WM_LBUTTONDOWN))
DoIt();
base.WndProc(ref m);
}
恐ろしい豆。この+ soooシンプルな検索年齢。乾杯。 – stigzler
- 1. 外部アプリケーション - グリッド内のマウスクリックイベント
- 2. アプリケーション全体のフォントサイズピッカー
- 3. キーボード全体の変更アプリケーション全体のアプリケーション
- 4. vue.jsのアプリケーション全体のグローバル
- 5. WPFアプリケーション全体のカスタムカーソル
- 6. .Netアプリケーション全体の変数
- 7. Winforms:アプリケーション全体のアクセスクラスプロパティ
- 8. アプリケーション全体のグローバル変数
- 9. Delphiアプリケーション全体のSetThreadLocale
- 10. DevExpress.XtraTreeList.TreeList全体をC#
- 11. AVAudioPlayerがアプリケーション全体をハング
- 12. C#イベントのIPC全体
- 13. マウスクリックイベント
- 14. C#Winformsテキストボックスのマウスクリックイベントを抑制する
- 15. アプリケーション全体の異なるオブジェクトのTableView
- 16. プラグインアーキテクチャ用のアプリケーション全体のイベント/フック
- 17. eclipse e4アプリケーションのウィンドウ全体のサイズを
- 18. アプリケーション全体のグローバルエラーメッセージの設定
- 19. 回帰テストPythonのアプリケーション全体
- 20. アプリケーション全体のフォントサイズを変更する
- 21. アプリケーション全体のブロードキャスト受信者
- 22. ngModuleアプリケーション全体のインポートモジュールですか?
- 23. ウェブ全体のWebアプリケーション開発
- 24. C/C++ - 構造体タグ - 不完全型
- 25. SSRS 2016:パラメータボックス全体の位置を上から左に移動
- 26. Mysql - 左側の結合でテーブル全体をエイリアスする方法
- 27. のjava:マウスクリックイベント
- 28. Cのシステム全体のメモリを取得
- 29. 負荷資産からの書体やアプリケーション全体
- 30. アプリケーション全体を使用するベストプラクティスTraceSource
WinFormsの代わりにWPFを検討することを検討してください。 WPFイベントは自動的に親コントロールにバブリングされるので、これは簡単です。 –