VC++ 2008 にて、コントロールのサブクラス化を行っているのですが、
ボタンのクリックイベントで詰まりました。


ウィンドウプロシージャ内で、 
マウスの左ボタンクリックのイベントを拾いたいのですが、
WM_LBUTTONDOWN、WM_LBUTTONUP や
ダブルクリックの WM_LBUTTONDBLCLK はあるものの、
シングルクリック(マウスを押して離す)の定義が見つかりませんでした。

WM_COMMAND だと親コントロール依存になってしまうので避けたいです。

.NETクラスライブラリの Control.WndProc を覗いてみると、
WM_LBUTTONDOWN の際に、押された事を示すフラグを内部的に立て、
フラグが立っている状態(そのコントロール外でマウスボタンを離さない)で、
WM_LBUTTONUP が来たら クリックイベント発動。
という、けっこう面倒な処理をしていました。

どうしようもなければ、.NETと同じようなコードにしようと思うのですが、
もっと簡単な実装などありますでしょうか?
よろしくお願い致します。