マウスの停止を感知し、n秒間停止していたらマウスの現在位置に画像を表示するようにしたいのですが、ご教授お願いします。
もちろんマウスを移動させているときは、画像は表示されないようにしたいです。
いや、ドコが分からないんだ?
※「コードが分からないので教えてください」とかは、ナシ。
ざっくり考えると、
(1) 最後にマウスが移動した時刻を保持する変数を用意
(2) タイマーで定期的にマウスの座標をチェック
(3) 前回チェック時と座標が変わっていたら、
(1)の変数に現在の時刻を代入
画像Formを消去
(4) (1)の変数と現在の時刻の差がn秒以上、かつ画像Formが表示されていなければ、
マウスの座標を基点に画像Formを表示
って感じで、
・「座標が変わる」の判定を「=」でやるとシビアすぎるので、
数ドットのブレは許容内にした方がいいかもしれない
・マウス座標の取得はそれ用のAPIを使用、
・画像FormはLoad/UnloadやShow/Hideを使うとのろい場合があるので、
マイナス座標に追いやって非表示相当の扱いとするという手法も検討してみる
あたりがポイントでしょうか。
具体的なコーディングについては、ご自分で一度組んでみてから
ポイントごとに具体的に質問されるといいかと思います。
自分のアプリ内限定でtooltipのような使い方をしたいのなら
TrackMouseEvent()でWM_MOUSEHOVERでもいいかも
ツイート | ![]() |