Угасающая анимация - плавное появление и исчезание картинки - VB
Формулировка задачи:
Добрый день всем.
Подскажите пример угасающей анимации форма с картинкой плавно появляется и плавно затухает.
Нашел вот это, но с привязкой к osenxpsuite2010.ocx. Минус в том, что он платный..
пример...https://youtu.be/2BXhSApNjn8
Решение задачи: «Угасающая анимация - плавное появление и исчезание картинки»
textual
Листинг программы
Option Explicit
Private Declare Function UpdateLayeredWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal hdcDst As Long, pptDst As Any, psize As Any, ByVal hdcSrc As Long, pptSrc As Any, ByVal crKey As Long, pblend As Long, ByVal dwFlags As Long) As Long
Private Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE As Long = -20
Private Const ULW_ALPHA = &H2
Private Const AB_32Bpp255 = 33488896
Dim WithEvents tmrTimer As Timer
Private Sub Form_Load()
Set tmrTimer = Controls.Add("VB.Timer", "tmrTimer")
tmrTimer.Interval = 32
SetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) Or WS_EX_LAYERED
End Sub
Private Sub tmrTimer_Timer()
Static sz As Currency, pt As Currency, fr As Long
sz = (Me.ScaleWidth + CCur(Me.ScaleHeight) * 4294967296#) / 10000
UpdateLayeredWindow Me.hwnd, Me.hDC, pt, sz, Me.hDC, pt, 0, &H1000000 Or fr, ULW_ALPHA
fr = (fr + &H20000) And &HFF0000
End Sub