マウスホバー、マウスリーブの実装
あるコントロールに「マウスが乗っかった」、あるいは「マウスが逃げた」を察知することができます。 SetCapture()、ReleaseCapture() 「マウスが乗っかる」を Hover といい、「マウスが逃げる」を Leave といいます。 サンプルは以下のとおりです。 *----*----*----*----*----*----*----* フォームにテキストボックスをふたつ配置し(オブジェクト:Text1、Text2)以下のコードを フォームモジュールに貼り付けて実行してみてください。 Option Explicit Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function ReleaseCapture Lib "user32" () As Long Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If X >= 0 And X < Text1.Width And Y >= 0 And Y < Text1.Height Then Text1.BackColor = vbYellow Or &HC0C0C0 SetCapture Text1.hwnd Else Text1.BackColor = &H80000005 ReleaseCapture End If End Sub Private Sub Text2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If X >= 0 And X < Text2.Width And Y >= 0 And Y < Text2.Height Then Text2.BackColor = vbYellow Or &HC0C0C0 SetCapture Text2.hwnd Else Text2.BackColor = &H80000005 ReleaseCapture End If End Sub テキストボックスにマウスが乗っかればBackColorが薄い黄色に、離れれば元の色に戻ります。 |
動作確認
Windows95 + Visual Basic 5このサンプルを使用しての感想や、質問は 掲示板や、 らくがき帳に書きとめて頂けるとうれしいです。