ボタンクリックについて

解決


エア  2006-06-14 11:26:35  No: 62168  IP: 192.*.*.*

ダイアログ上にボタンを配置し、
ボタンをマウスでクリックすると、
マウスを離した時に処理を開始するのですが、
マウスを押したときに処理を開始とするにはどのような処理をすればよいのでしょうか?

編集 削除
Blue  2006-06-14 11:35:24  No: 62169  IP: 192.*.*.*

> マウスを離した時
> マウスを押したときに
とは?
マウスの左ボタンを押した瞬間と、離した瞬間でしょうか?
(WM_LBUTTONDOWN,WM_LBUTTONUP)

CButtonをサブクラス化するのかなぁ。

編集 削除
Blue  2006-06-14 11:36:39  No: 62170  IP: 192.*.*.*

あ〜すいません。MFC前提で解答してしまいました。

ということで、質問時には環境は必ず明記してください。

・OS
・VCのバージョン
・プロジェクトの種類

編集 削除
エア  2006-06-14 11:56:15  No: 62171  IP: 192.*.*.*

すいません。

マウスの左ボタンを押した瞬間です。

OS WindowsXP
VC++ 6.0
MFCです。

編集 削除
tetrapod  2006-06-14 11:57:03  No: 62172  IP: 192.*.*.*

この質問よく見るけどUI的には最悪なので要考察。
間違って押した!って場合に取り返しがつかない処理が即実行される
なんてことになりかねないので「離したとき」なのが幸せっぽい。

編集 削除
Blue  2006-06-14 12:00:58  No: 62173  IP: 192.*.*.*

先ほど解答しましたが、
> CButtonをサブクラス化
して、WM_LBUTTONDOWN,WM_LBUTTONUPをハンドルしてください。

編集 削除
瀬戸っぷ  2006-06-15 00:52:56  No: 62174  IP: 192.*.*.*

> 間違って押した!って場合に取り返しがつかない処理が即実行される
> なんてことになりかねないので「離したとき」なのが幸せっぽい。

マウスのボタンを押したまま、ドラッグ状態で移動させてから離せば実行はされない。
というヤツですね。
数回助けられたことがあります。

が、キーボード操作の場合、ボタンをスペースキーで押下させた場合と、Enterキーとで動作が違ったような。

# 質問に対する回答とは違いますが

編集 削除
エア  2006-06-16 16:51:46  No: 62175  IP: 192.*.*.*

無事解決しました。
ありがとうございました。

編集 削除