Плавно исчезающая форма - VB

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

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

Привет всем! Помогите с проблемой. Не могу понять, как сделать чтобы по истечении времени, например, через 10 секунд, форма медленно исчезала. То есть становилась прозрачной и как станет прозрачной полностью закрылась, то есть отработал Unload Me. скорость исчезновения тоже регулируется таймером. Всем спасибо за отклик!

Решение задачи: «Плавно исчезающая форма»

textual
Листинг программы
Option Explicit
Dim a As Byte
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex 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 SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
 
Private Const LWA_COLORKEY = &H1
Private Const LWA_ALPHA = &H2
Private Const LWA_ALPHAANDCOLORKEY = &H3
Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_LAYERED = &H80000
 
Private Const CLR_Black = &H0&
Private Const CLR_Fon = &HFF8080
 
Public Sub SetTransparent1(hWnd As Long, Layered As Byte)
Dim Ret As Long
    
    Ret = GetWindowLong(hWnd, GWL_EXSTYLE)
    
    Ret = Ret Or WS_EX_LAYERED
    
    SetWindowLong hWnd, GWL_EXSTYLE, Ret
    
    SetLayeredWindowAttributes hWnd, 0, Layered, LWA_ALPHA
 Me.Visible = True
End Sub
 
Private Sub Form_Load()
timer1.interval=1
Me.Visible = False
a = 0
End Sub
 
Private Sub Timer1_Timer()
a = a + 1
If a > 254 Then Timer1.Enabled = False: Exit Sub
 
        SetTransparent1 Me.hWnd, a
 
End Sub

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


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

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

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