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

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

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

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

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

textual
Листинг программы
  1. Option Explicit
  2.  
  3. Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long
  4. Private Declare Function ReleaseCapture Lib "user32" () As Long
  5.  
  6. Dim capControl As Image
  7.  
  8. Private Sub Form_Load()
  9.  
  10.     For Each capControl In imgLeave
  11.         Set capControl.Picture = picState(1).Picture
  12.     Next
  13.    
  14. End Sub
  15.  
  16. Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  17.    
  18.     If Not capControl Is Nothing Then
  19.         Set capControl.Picture = picState(2).Picture
  20.     End If
  21.    
  22. End Sub
  23.  
  24. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  25.  
  26.     If Not capControl Is Nothing Then
  27.         Set capControl.Picture = picState(1).Picture
  28.         Set capControl = Nothing
  29.         ReleaseCapture
  30.     End If
  31.    
  32. End Sub
  33.  
  34. Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  35.  
  36.     If Not capControl Is Nothing Then
  37.         SetCapture capControl.Container.hwnd
  38.         Set capControl.Picture = picState(1).Picture
  39.     End If
  40.    
  41. End Sub
  42.  
  43. Private Sub imgLeave_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
  44.  
  45.     If Not capControl Is Nothing Then
  46.         If capControl Is imgLeave(Index) Then Exit Sub
  47.         Set capControl.Picture = picState(1).Picture
  48.     End If
  49.    
  50.     SetCapture imgLeave(Index).Container.hwnd
  51.     Set capControl = imgLeave(Index)
  52.     Set capControl.Picture = picState(0).Picture
  53.    
  54. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

14   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы