C# Form Animation with Windows API
.NET Animation Control
C# GameDev: Simple Animation
An Animation Component using C#
C#如何?漸顯視窗[原創]
using System.Runtime.InteropServices;
public class Win32
{
public const Int32 AW_HOR_POSITIVE = 0x00000001; // 從左至右開啟視窗
public const Int32 AW_HOR_NEGATIVE = 0x00000002; // 從右至左開啟視窗
public const Int32 AW_VER_POSITIVE = 0x00000004; // 從上到下開啟視窗
public const Int32 AW_VER_NEGATIVE = 0x00000008; // 從下到上開啟視窗
public const Int32 AW_CENTER = 0x00000010; //若使用了AW_HIDE標誌,則使視窗向內重疊;若未使用AW_HIDE標誌,則使視窗向外擴充。
public const Int32 AW_HIDE = 0x00010000; //隱藏視窗,預設則顯示視窗。
public const Int32 AW_ACTIVATE = 0x00020000; //啟用視窗。在使用了AW_HIDE標誌後不要使用這個標誌。
public const Int32 AW_SLIDE = 0x00040000; //使用滑動類型。預設則為滾動動畫類型。當使用AW_CENTER標誌時,這個標誌就被忽略。
public const Int32 AW_BLEND = 0x00080000; //使用淡出效果。只有當hWnd為頂層視窗的時候才可以使用此標誌。
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern bool AnimateWindow(
IntPtr hwnd, // handle to window
int dwTime, // duration of animation
int dwFlags // animation type
);
}
/*淡入表單*/
private void Form_Load(object sender, EventArgs e)
{
Win32.AnimateWindow(this.Handle, 2000, Win32.AW_BLEND);
}
/*淡出表單*/
private void Form_FormClosing(object sender, FormClosingEventArgs e)
{
Win32.AnimateWindow(this.Handle, 2000, Win32.AW_SLIDE | Win32.AW_HIDE | Win32.AW_BLEND);
}