マウスポインター有無の判定方法

解決


かわにー  2002-07-19 21:10:08  No: 1129

質問してばかりで申し訳ありません。
Panelやimageの上にマウスポインターがあるかないかの判定を
行いたいのですが方法がわかりません。
ある場合は、mouse_moveイベントで監視すればよいかと思うのですが
なかった場合に処理を行いたい時はどうすればよいのでしょうか?
(そのimageより外に出た瞬間をキャッチできればよい)
スクリーン全体に対するマウスポインターの位置とフォーム上のimage
コントロールの位置関係を考えて処理するしかないのでしょうか?
よろしくお願いします。


たかみちえ  URL  2002-07-19 21:52:45  No: 1130

全てのコントロール(かどうかは分からないですけど…)には、
裏でCM_MOUSELEAVEというメッセージがきます。
マウスが離れたことを示すメッセージで、ラベルのOnMouse...と同じです。
(CM_MOUSEENTERもあります)
  詳しくはココ
http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=25

  これでマウスが出たかどうか分かります。
  ただ、パネルの中のメッセージを取得するのは意外と面倒なので、
やることが多いのならいっそコンポーネントにでも…。

  マウスが出た後にも、操作を行いたいのなら、mouse変数(ヘルプ参照)と、
Timerコンポーネントをうまくくみ合わせます。
  もうひとつ。APIにSetCaptureというのもあります。
これは、つぎにReleaceCaptureを使うまで、マウスイベントを全部、
指定したコントロールのなかでのみ発生させるAPIです。
まあ、他のアプリケーションとで問題を起こすこともありますけど…。

  とにかく、これらの方法が使えると思います。


かわにー  2002-07-20 00:29:30  No: 1131

たかみちえさん、早い回答ありがとうございます。
助かりました!!


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加