• ベストアンサー

マウスをクリックしたときのイベント

VisualC++2010のButton Controlのイベントについて 「BN_CLICKED」イベントはマウスをクリックして、放した時に発生します。 クリックしたときのイベントは取れないのでしょうか? *設定時間、押しっぱなしで、次の処理に移るというプログラムを書きたいため  悩んでいます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

buttonコントロール上でマウスボタンを押し下げた瞬間に、MouseDownイベントが発生します。 https://msdn.microsoft.com/ja-jp/library/system.windows.uielement.mousedown(v=vs.110).aspx なお、MouseDownイベントだけが起きて、ClickイベントやMouseUpイベントが起きない場合があります。 例えば、ボタンコントロール上でマウスボタンを押して、マウスボタンを押したままボタンコントロールからマウスカーソルを外に出してしまい、ボタンコントロール以外の場所でマウスボタンを離すと「マウスボタンを押し下げたイベントのみ」が発生して、マウスボタンが離されたと言うイベントも、クリックされたと言うイベントも発生しません。 なお、マウス関係のイベントは MouseDown MouseEnter MouseLeave MouseLeftButtonDown MouseLeftButtonUp MouseMove MouseRightButtonDown MouseRightButtonUp MouseUp MouseWheel があります。 また、MouseLeft???系、MouseRight???系のイベントは、マウス設定で左右のボタンを入れ替えている場合、MouseDown、MouseUpとは異なる結果になります。 例えば「MouseDownで右ボタンが押し下げられたと言うイベントが来ると同時に、MouseRightButtonDownイベントではなく、MouseLeftButtonDownイベントが起きる」と言う状態が有り得ます。 これは、片方が「ボタンの物理的な左右」をトラップし、もう片方が「ボタンの論理的な左右」をトラップしているからです。 なので、イベントによって「物理的な左右ボタン」と「論理的な左右ボタン」を使い分ける必要があります。

aki2004-09-08
質問者

お礼

早速のご回答ありがとうございました。 参考にさせていただきます。

その他の回答 (1)

  • kngj1740
  • ベストアンサー率18% (197/1052)
回答No.1

このあたり参考になりませんか。 http://www.kumei.ne.jp/c_lang/sdk2/sdk_101.htm

関連するQ&A