Hi Xandip, I hope the code is useful... Here is the API declaration : Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _ (ByVal hwnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetLayeredWindowAttributes Lib "user32" _ (ByVal hwnd As Long, ByVal crey As Byte, ByVal bAlpha As Byte, 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 Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Const GWL_EXSTYLE = (-20) Private Const LWA_ALPHA = &H2& Private Const WS_EX_LAYERED = &H80000 Here is the code where you should use : Private Sub Command2_Click() Dim fadeCtr As Integer Call SetWindowLong(Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) Or WS_EX_LAYERED) For fadeCtr = 255 To 0 Step -1 Call SetLayeredWindowAttributes(Me.hwnd, 0, fadeCtr, LWA_ALPHA) DoEvents Call Sleep(5) Next End End Sub Please dont use this code in Unload event of form - as you observe, I had used DoEvents in the above function. If this is useful, reply me to answer again.