AnimateWindow (user32)
Last changed: -73.81.7.241

.
Summary

C# Signature:

[DllImport("user32.dll")]
static extern bool AnimateWindow(IntPtr hwnd, uint dwTime, uint dwFlags);

Or,

[DllImport("user32")]
static extern bool AnimateWindow(IntPtr hwnd, int time, AnimateWindowFlags flags);

VB Signature:

<DllImport("user32.dll")> _
Shared Function AnimateWindow(ByVal hwnd As IntPtr, ByVal dwTime As UInteger, ByVal dwFlags As UInteger) As Boolean
End Function

Or,

<DllImport("user32.dll")> _
Shared Function AnimateWindow(ByVal hwnd As IntPtr, ByVal time As Integer, ByVal flags As AnimateWindowFlags) As Boolean
End Function

User-Defined Types:

AnimateWindowFlags can be used for the dwFlags parameter.

Notes:

Don't forget to use the AnimateWindowFlags!

Tips & Tricks:

To get an animation to run in reverse, to say, animate the window closing use some thing like:

Dim f2 As Form2
f2 = New Form2
AnimateWindow(f2.Handle, 1000, AnimateWindowFlags.AW_VER_NEGATIVE Or AnimateWindowFlags.AW_SLIDE or AnimateWindowFlags.AW_HIDE)
f2.Show()

The AW_HIDE will make any of the animations run in reverse.

AnimateWindow doesn't actually show the window so make sure you call Show() or set this.Visible = true after calling AnimateWindow

Sample Code:

C#

This assumes that the AnimateWindow function is declared inside class User32

Form2 f2 = new Form2();
AnimateWindow( f2.Handle, 1000, (uint) AnimateWindowFlags.AW_VER_NEGATIVE |
                (uint) AnimateWindowFlags.AW_SLIDE );
f2.Show();

Alternative Managed API:

VB.NET Signature:

Public Declare Auto Function AnimateWindow Lib "user32" (ByVal hwnd As IntPtr, ByVal time As Integer, ByVal flags As AnimateWindowFlags) As Boolean

Sample Code:

VB.NET

Dim f2 As Form2
f2 = New Form2
AnimateWindow(f2.Handle, 1000, AnimateWindowFlags.AW_VER_NEGATIVE Or AnimateWindowFlags.AW_SLIDE)
f2.Show()

Documentation