Смена картинки в Image при наведении на неё мышкой - VB

Узнай цену своей работы

Формулировка задачи:

У меня есть картинки 1.jpg и 2.jpg. На форме есть Image1 с картинкой по умолчания 1.jpg. При наведении на эту картинку курсором надо что бы она стала 2.jpg. Это я сделал с помощью MouseMove. Но мне надо чтобы при отведении курсора в другое место картинка становилась вновь 1.jpg. Я пытался сделать это с помощью таймера, но таймер совсем не выход. Из-за него лагает. Да и дико это как то.

Решение задачи: «Смена картинки в Image при наведении на неё мышкой»

textual
Листинг программы
Option Explicit
 
Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
 
Dim capControl As Image
 
Private Sub Form_Load()
 
    For Each capControl In imgLeave
        Set capControl.Picture = picState(1).Picture
    Next
    
End Sub
 
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    
    If Not capControl Is Nothing Then
        Set capControl.Picture = picState(2).Picture
    End If
    
End Sub
 
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
 
    If Not capControl Is Nothing Then
        Set capControl.Picture = picState(1).Picture
        Set capControl = Nothing
        ReleaseCapture
    End If
    
End Sub
 
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
 
    If Not capControl Is Nothing Then
        SetCapture capControl.Container.hwnd
        Set capControl.Picture = picState(1).Picture
    End If
    
End Sub
 
Private Sub imgLeave_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
 
    If Not capControl Is Nothing Then
        If capControl Is imgLeave(Index) Then Exit Sub
        Set capControl.Picture = picState(1).Picture
    End If
    
    SetCapture imgLeave(Index).Container.hwnd
    Set capControl = imgLeave(Index)
    Set capControl.Picture = picState(0).Picture
    
End Sub

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы