- 81 名前:デフォルトの名無しさん [2009/06/01(月) 19:54:20 ]
- VC++ 2008 にて、コントロールのサブクラス化を行っているのですが、
ボタンのクリックイベントで詰まりました。 ウィンドウプロシージャ内で、 マウスの左ボタンクリックのイベントを拾いたいのですが、 WM_LBUTTONDOWN、WM_LBUTTONUP や ダブルクリックの WM_LBUTTONDBLCLK はあるものの、 シングルクリック(マウスを押して離す)の定義が見つかりませんでした。 WM_COMMAND だと親コントロール依存になってしまうので避けたいです。 .NETクラスライブラリの Control.WndProc を覗いてみると、 WM_LBUTTONDOWN の際に、押された事を示すフラグを内部的に立て、 フラグが立っている状態(そのコントロール外でマウスボタンを離さない)で、 WM_LBUTTONUP が来たら クリックイベント発動。 という、けっこう面倒な処理をしていました。 どうしようもなければ、.NETと同じようなコードにしようと思うのですが、 もっと簡単な実装などありますでしょうか? よろしくお願い致します。
|

|