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を起こしたいです。
どうすれば、良いのでしょうか?
それぞれのコントロールごとに、座標判断を入れることになるでしょう。
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)。
解決しました。
ありがとうございます。