Плавно увеличить PictureBox при наведении курсора - VB

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

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

Приветствую. Есть массив PictureBox, размер которых необходимо плавно изменять при наведении курсора. Пытался задачу решить штатными свойствами Width и Height, но это вызывает дёрганье картинки внутри PictureBox, лишено плавности и вообще выглядит криво. Как сделать это правильно? Спасибо!

Решение задачи: «Плавно увеличить PictureBox при наведении курсора»

textual
Листинг программы
  1. Dim totWidth, totRow, origH(100), origW(100), SelPic As Integer
  2.  
  3. Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
  4. Private Declare Function SetStretchBltMode Lib "gdi32" (ByVal hdc As Long, ByVal hStretchMode As Long) As Long
  5. Const STRETCHMODE = vbPaletteModeNone   'You can find other modes in the "PaletteModeConstants" section of your Object Browser
  6.  
  7. Sub LoadCover(Index As Integer, filename As String, CoverHeight As Integer)
  8.     Load Cover(Index)
  9.     On Error Resume Next
  10.     Original.Picture = LoadPicture(filename)
  11.     Cover(Index).Height = CoverHeight
  12.     Cover(Index).Width = Cover(Index).Height * Original.Width / Original.Height
  13.     origH(Index) = Cover(Index).Height
  14.     origW(Index) = Cover(Index).Width
  15.     DoEvents
  16.     Call SetStretchBltMode(Cover(Index).hdc, STRETCHMODE)
  17.     Call StretchBlt(Cover(Index).hdc, 0, 0, Cover(Index).Width, Cover(Index).Height, Original.hdc, 0, 0, Original.Width, Original.Height, vbSrcCopy)
  18. End Sub

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


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

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

15   голосов , оценка 3.933 из 5

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

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

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