マウスホバー、マウスリーブの実装




あるコントロールに「マウスが乗っかった」、あるいは「マウスが逃げた」を察知することができます。

 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
Windows98 Second Edition + Visual Basic 6


このサンプルを使用しての感想や、質問は 掲示板や、 らくがき帳に書きとめて頂けるとうれしいです。


戻る


インデックスに戻る


yVoC[UNLIMIT1~] ECir|C Yahoo yV LINEf[^[z500~`I


z[y[W NWbgJ[h COiq O~yz COsI COze