ダイアログ上にボタンを配置し、
ボタンをマウスでクリックすると、
マウスを離した時に処理を開始するのですが、
マウスを押したときに処理を開始とするにはどのような処理をすればよいのでしょうか?
> マウスを離した時
> マウスを押したときに
とは?
マウスの左ボタンを押した瞬間と、離した瞬間でしょうか?
(WM_LBUTTONDOWN,WM_LBUTTONUP)
CButtonをサブクラス化するのかなぁ。
あ〜すいません。MFC前提で解答してしまいました。
ということで、質問時には環境は必ず明記してください。
・OS
・VCのバージョン
・プロジェクトの種類
すいません。
マウスの左ボタンを押した瞬間です。
OS WindowsXP
VC++ 6.0
MFCです。
この質問よく見るけどUI的には最悪なので要考察。
間違って押した!って場合に取り返しがつかない処理が即実行される
なんてことになりかねないので「離したとき」なのが幸せっぽい。
先ほど解答しましたが、
> CButtonをサブクラス化
して、WM_LBUTTONDOWN,WM_LBUTTONUPをハンドルしてください。
> 間違って押した!って場合に取り返しがつかない処理が即実行される
> なんてことになりかねないので「離したとき」なのが幸せっぽい。
マウスのボタンを押したまま、ドラッグ状態で移動させてから離せば実行はされない。
というヤツですね。
数回助けられたことがあります。
が、キーボード操作の場合、ボタンをスペースキーで押下させた場合と、Enterキーとで動作が違ったような。
# 質問に対する回答とは違いますが
無事解決しました。
ありがとうございました。
ツイート | ![]() |