4


0

ボタンコントロール用のBN_CLICKEDおよびBN_DBLCLK通知メッセージがあります。 しかし、どのように私は任意のボタンコントロールの右クリックメッセージをキャッチするでしょうか?

6 Answer


2


あなたは WM_RBUTTONDOWN、http://msdn.microsoft.com/ja-jp/library/ms646243(VSを使用することができます。 .85).aspx [WM_RBUTTONUP]、および WM_RBUTTONDBLCLK


1


BN_CLICKEDは、ボタン自体によってボタンの親ウィンドウに送信される通知メッセージです。 WM_RBUTTONDOWNなどのメッセージを傍受するには、Windows自体からボタンウィンドウに送信されるメッセージであるため、ボタンをサブクラス化する必要があります。 Sinfe Subclassing in Win32の "Instance Subclassing"というセクションを参照してください。


1


`WM_CONTEXTMENU`を扱います。 マウスの右ボタンメッセージを処理するよりもこの利点は、ユーザーが右クリックと同等のキーボードを使用できることです。


0


NM_RCLICKが送信されるので、Windowsのメッセージをよく見てください。

あなたはNM_RCLICKまたはWM_RBUTTONDOWNでさえあるかどうか見るためにBN_CLICKEDを受け取ることをチェックできます


0


実際には答えではありませんが、ボタンのコンテキストメニューを見ることができるかもしれないと思います。 (私の頭の上の出来事を知らないでください)。 あなたがボタンを押すとコンテキストメニューをキャッチできる場合は、それは右クリックと同じです。

ボタンダウンは良い道ではありません。 ユーザーがボタンを押したときにクリックがキャッチされます。 ボタンを押してみて、ボタンから指を離す前に、マウスを離してください。 そのボタンのアップストロークは記録されず、クリックも記録されません。

繰り返しになりますが、これは答えではありませんが、手がかりになるかもしれません。 私はハンドヘルドの人です、それでほとんどの場合私は「右マウスボタン」を持っていません。


0


これは昔からの質問ですが、私に関する限りはまだ十分に答えられていません。 私は同じ問題に直面し、受け入れられた答えは単純にうまくいかなかったことを発見しました - 私がそれらを手に入れることができる前に述べられたメッセージは傍受されます。 WM_RBUTTONDOWNなどは使えませんでした。

それで、この質問に来る人々は本当に このソリューションについて知っているべきです、それはボタンをサブクラス化して、右のマウスボタンメッセージを扱うことを含みます( s)サブクラスの中で、それらを使ってNM_RCLICKメッセージを親ウィンドウに送り返す。