お世話になります。
早速ですがラベルにマウスカーソルを近づけるとイベントが効くのですが
逆にそのラベルから離すと効きません。尚、APIのSetCaptureを利用しようとすると引数のhwnd にラベルが対応していないので利用できませんでした。
ご教授よろしくお願いします。
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X >= 0 And Y >= 0 And X < Label1.Width And Y < Label1.Height Then
Label1.BackColor = vbRed
Else
Label1.BackColor = vbBlue <--- 処理しません
End If
End Sub
発想の転換。
Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X >= 0 And Y >= 0 And X < Label1.Width And Y < Label1.Height Then
Label1.BackColor = vbRed
SetCapture Form1.hwnd
End If
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X < Label1.Left Or Y < Label1.Top Or X > (Label1.Left + Label1.Width) Or Y > (Label1.Top + Label1.Height) Then
Label1.BackColor = vbBlue
ReleaseCapture
End If
End Sub
食後のうがいは大切さんありがとうございました。
逆を考んがえる
まさしく発想の転換でしたね。
助かりました。
ツイート | ![]() |