問題タブ [window-messages]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1687 参照

c# - WPF ウィンドウ (HwndSource.AddHook) でウィンドウ メッセージと共にキーボード イベントを受信する

TextBox のあるウィンドウがあります。カーソルは TextBox 内にあります。キーを押すと、WndProc でメッセージを受け取ります (KeyUp と KeyDown の場合)。しかし、KeyUp イベントと KeyDown イベントで e.Handled = true を設定すると、キー メッセージを受け取りません。

WndProc で PreviewKeyDown/PreviewKeyUp イベントを受け取ることは可能ですか?

0 投票する
1 に答える
692 参照

delphi - VK_LEFT/VK_RIGHT がアプリケーションで処理されない?

PostMessage を使用して Windows メッセージをアプリケーションに送信しています。現在、このコードは、矢印キー (VK_RIGHT または VK_LEFT) 以外のキーを送信するときに正常に機能します。

lParam がどのように見えるかを確認するために、VK_LEFT/RIGHT の WM_KEYDOWN/UP メッセージを監視するキーボード フックをインストールしました。いくつかの奇妙な値に遭遇しました。右矢印キー (VK_RIGHT) を押したときの DebugView の出力は次のとおりです。

これらの値がハードコードされたメッセージを送信しようとしても、何も起こりません。何が起こっているのですか? ありがとう。

0 投票する
0 に答える
167 参照

c# - Usercontrols または IMessageFilter の実装で WM_DEVICECHANGE メッセージを取得する方法はありますか?

私は決して Windows メッセージの専門家ではないので、ばかげたことを尋ねている場合はご容赦ください。

USBデバイスが接続または削除されたときに通知を受け取るためにWndProcをオーバーライドすることにより、Windowsメッセージに接続するフォームがあります( WM_DEVICECHANGE )。すべて正常に動作します。

このコードを基になるユーザー コントロールに移動したとき、メッセージに対して呼び出されなくなったことに驚きましたWM_DEVICECHANGE。ただし、他のメッセージはキャッチされます。これが私がオーバーライドするために使用したコードです。

単純にコードをフォームに戻さずに解決する方法をさらに探したところ、IMessageFilterインターフェイスが見つかりましたが、それを実装して登録してApplication.AddMessageFilterも問題は解決しませんでした。実際、メインを登録WM_DEVICECHANGEしたときにメッセージが渡されませんでした。PreFilterMessagewindow - WndProc オーバーライドのみを渡します。

明らかに、ウィンドウ メッセージに関する私の理解は完全には程遠いですが、何が欠けていたのでしょうか?

WM_DEVICECHANGEメインウィンドウを通過せずにキャッチする方法はありますか? そして、将来のために私を助けるために:どのウィンドウメッセージがどこに送られ、どこに送られず、なぜ送られるのか、良い参照を見つけるためにどこを調べなければなりませんか?

0 投票する
1 に答える
214 参照

c# - Handler を使用して別のアプリケーション (WM_MOUSEWHEEL) でマウス ホイール イベントを無効にする方法

次のコードを使用して、アプリケーションから別のアプリケーション ウィンドウ (電卓) を閉じることができます。

しかし、同じ電卓アプリケーション ウィンドウでマウス ホイールを無効にしたいと考えています。次の方法を試しましたが、うまくいきません。