■ MouseMoveイベントを必ず発生させる
さいとう
2008/02/19(火) 14:27:56
Picture1を貼り付けて、下記のプロシージャーを書きます。
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text2.Text = X
End Sub
こうしたときに、フォームやコマンドボタンでクリック(ボタンを押しっぱなし)
にしたまま、マウスカーソルをPictutr1に移動すると、Picture1_MouseMoveが発生しません。
カーソルかPicture1の上に来たときは、必ずPicture1_MouseMoveを起こしたいです。
どうすれば、良いのでしょうか?
魔界の仮面弁士
2008/02/19(火) 14:57:32 <常連> 
それぞれのコントロールごとに、座標判断を入れることになるでしょう。
Option Explicit
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1.Text = X
End Sub
Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim L As Single, T As Single, R As Single, B As Single
L = Picture1.Left - Command1.Left
T = Picture1.Top - Command1.Top
R = L + Picture1.Width
B = T + Picture1.Height
If (L <= X And X <= R) And (T <= Y And Y <= B) Then
Text1.Text = X
End If
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim L As Single, T As Single, R As Single, B As Single
L = Picture1.Left
T = Picture1.Top
R = L + Picture1.Width
B = T + Picture1.Height
If (L <= X And X <= R) And (T <= Y And Y <= B) Then
Text1.Text = X
End If
End Sub
もしくは Timer 等で、定期的にマウス座標を監視するとか(GetCursorPos API)。
さいとう
2008/02/19(火) 16:21:14
[[解決]]
解決しました。
ありがとうございます。
毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!
