ボタンをクリックするとWM_COMMANDメッセージがその親に送信されますが、このメッセージを送信するメッセージはどのようなメッセージですか?私はボタンのデフォルトのWndProcをオーバーライドしており、ボタンはWM_COMMANDメッセージを受け取らないので、その機能を複製できるようにWM_COMMANDメッセージを送信するボタンがどのメッセージで発生するのかを知る必要があります。ボタンがWM_COMMANDメッセージを送信するメッセージ
答えて
実際には、WM_LBUTTONDOWN、WM_MOUSELEAVEなど、いくつかの組み合わせがあります。たとえば、WM_COMMANDは、ボタン上でマウスが押された場合にのみ起動され、WM_LBUTTONUPが起動されてもボタン上に残ります。スペースについては、など、私はそれだけでVK_ENTERメッセージやものを処理すると信じています。
私はそれがWM_LBUTTONUPだと思いますが、Spyプログラムを使って確かめてください。
何時にあなたを約できるボタンラッパーオブジェクトへのポインタで、以前の例some_infoため、この
::SetWindowLongPtr(button_handle, GWL_USERDATA, reinterpret_cast<LONG_PTR>(some_info));
のように、この情報を設定しておく必要があります
::GetWindowLongPtr(HWND(lParam), GWL_USERDATA);
呼び出して、あなたのボタンについての情報を抽出することができますスペースキーでそれをクリックしますか?またはEnterキー?またはアクセラレータキーを使用しますか? –
WM_LBUTTONDOWN
メッセージがWM_COMMAND
メッセージに変換されて親制御に送信されるため、WM_COMMAND
メッセージを上書きすることはできません。これはバックグラウンドで行われるメカニズムです。
あなたは宇宙についての質問とkey.Thisを入力するにはvk_enter
、vk_tab
...などのような仮想キーコードによって制御することができる。、
WM_COMMANDメッセージは常にコントロールの親で受信されます。あなたがボタンをクリックしますプログラムで、あなたはこれを行うことができます:WM_COMMANDの
::SendMessage(button_handle, BM_CLICK, 0, 0);
LPARAMはbutton_handleを保持しています。だから、あなたが
- 1. JMS送信メッセージ
- 2. sinch送信メッセージ -
- 3. Zabbixメッセージを送信する
- 4. PCIeメッセージを送信する
- 5. GCDAsyncSocketメッセージを送信する
- 6. ボタンが押されたときにメッセージを送信する
- 7. C2DMメッセージを送信
- 8. ボタンを押している間にメッセージが送信される
- 9. 送信されたメッセージとは別のスタイルで着信メッセージを送信する
- 10. ActionMailerが送信メッセージのメッセージIDを取得する
- 11. チャットプログラムでメッセージを送信したクライアントにメッセージが送信されています
- 12. Discord.pyが2回メッセージを送信する
- 13. AlexaがSMSテキストを送信するメッセージ
- 14. AWS SNS送信メッセージ
- 15. SignalRパラレル送信メッセージ
- 16. javascript:ユーザーがボタンを押したときにメッセージを送信
- 17. Android:送信メッセージを送信する(送信トレイ)?
- 18. ボタンで直接SMSメッセージを送信する方法
- 19. プログラムでskypeメッセージを送信
- 20. SignalRでメッセージを送信
- 21. MSMQリモートキューにメッセージを送信
- 22. PHPでメッセージを送信
- 23. NanoMessageBusでメッセージを送信
- 24. ウィンドウハンドルにメッセージを送信
- 25. RabbitMQトランザクションでメッセージを送信
- 26. Android Wearableにメッセージを送信
- 27. UIスレッドにメッセージを送信
- 28. メッセージを送信aloha network omnet ++
- 29. SoundCloud用メッセージAPIを送信
- 30. ポートにxmlメッセージを送信
明示的にトラップしたくないメッセージのボタンのために古いWndProcを呼び出すことができます。 (メモリから、私はそれを取得する 'GetWindowLongPtr(hWnd、GWL_WNDPROC)'だと思う...)それはあなたがしようとしていることをするためにフックを入れている間、通常のように 'WM_COMMAND'メッセージを送信する新しいボタンを取得する必要があります行う。しかし、これがあなたの状況に適しているかどうかは本当に分かりません... –
@broneいいえ、私はボタンが(ボタンのルールに従って)本当に "クリック"されたかどうかを知ることができる必要があります元のWndProc、私は自分のものをすることができます。親ウィンドウ内にWM_COMMANDをトラップすることは、私が必要とするものではありません。 –