Window fading

BlitzPlus Forums/BlitzPlus Programming/Window fading

OnkelDetlef(Posted 2004) [#1]
;Userlibs:
;
;.lib "user32.dll"
;
;api_GetActiveWindow% () : "GetActiveWindow
;api_SetLayeredWindowAttributes% (hwnd%, crKey%, bAlpha%, dwFlags%) : "SetLayeredWindowAttributes"
;api_SetWindowLong% (hwnd%, nIndex%, dwNewLong%) : "SetWindowLongA"
;

Const GWL_EXSTYLE = -20

win = CreateWindow("Example",100,100,300,300)
wnd = api_GetActiveWindow ()

HideGadget win

SetWinTransparenz(wnd,0)

ShowGadget win

FadeIn(wnd)

Delay 5000

FadeOut(wnd)

End

Function FadeIn(WinHandle)
For a = 1 To 255
SetWinTransparenz(WinHandle,a) : While WaitEvent(5):Wend
Next
End Function

Function FadeOut(WinHandle)
For a = 255 To 1 Step -1
SetWinTransparenz(WinHandle,a) : While WaitEvent(5):Wend
Next
End Function

Function SetWinTransparenz (WinHandle, Transparenz)
api_SetWindowLong(WinHandle,GWL_EXSTYLE,$00080000)
api_SetLayeredWindowAttributes(WinHandle,0,Transparenz,2)
End Function


Murilo(Posted 2004) [#2]
Will this only work with Win2000/XP? I thought, although I'm possibly wrong, that this API came in with Win2000 onwards.


soja(Posted 2004) [#3]
Yes, you need at least Windows 2000.