Public Sub FadeIn(ByVal hwnd As Long, _
ByVal lngAlphaMax As Long, _
Optional ByVal lngStep As Long = 1)
Dim udtOSVer As OSVERSIONINFO
Dim bAlpha As Byte
Dim lngWindowStyle As Long
udtOSVer.dwOSVersionInfoSize = Len(udtOSVer)
GetVersionEx udtOSVer
If udtOSVer.dwMajorVersion >= 5 Then
bAlpha = 1
lngWindowStyle = GetWindowLong(hwnd, GWL_EXSTYLE)
SetWindowLong hwnd, GWL_EXSTYLE, lngWindowStyle Or WS_EX_LAYERED
SetLayeredWindowAttributes hwnd, 0, bAlpha, LWA_ALPHA
' Show + refresh
ShowWindow hwnd, SW_SHOWNORMAL
UpdateWindow hwnd
Do
SetLayeredWindowAttributes hwnd, 0, bAlpha, LWA_ALPHA
If (Not ((bAlpha + lngStep) > lngAlphaMax)) Then
bAlpha = bAlpha + lngStep
Else
bAlpha = lngAlphaMax
SetLayeredWindowAttributes hwnd, 0, bAlpha, LWA_ALPHA
End If
Loop Until bAlpha >= lngAlphaMax
SetWindowLong hwnd, GWL_EXSTYLE, lngWindowStyle
Else ' udtOSVEr.dwMajorVersion < 5
ShowWindow hwnd, SW_SHOWNORMAL
End If
End Sub