動畫標誌常量定義
const int AW_HOR_POSITIVE = 0x00000001; // 左→右
const int AW_HOR_NEGATIVE = 0x00000002; // 右→左
const int AW_VER_POSITIVE = 0x00000004; // 上→下
const int AW_VER_NEGATIVE = 0x00000008; // 下→上
const int AW_CENTER = 0x00000010; // 中心展開/收縮
const int AW_HIDE = 0x00010000; // 隱藏窗口(關閉動畫必須)
const int AW_ACTIVATE = 0x00020000; // 激活窗口(打開動畫建議)
const int AW_SLIDE = 0x00040000; // 滑動效果(默認)
const int AW_BLEND = 0x00080000; // 淡入淡出效果
參數詳細說明
| 標誌 | 含義 | 備註 |
| AW_SLIDE | 使用滑動動畫 | 默認類型;配合 AW_CENTER 時被忽略 |
| AW_ACTIVATE | 激活窗口 | 帶 AW_HIDE 時不可用 |
| AW_BLEND | 淡入淡出 | 不支持標題欄動畫;與 AW_SLIDE 互斥 |
| AW_HIDE | 隱藏窗口 | 關閉動畫必須指定 |
| AW_CENTER | 中心展開/收縮 | 配合 AW_HIDE:向內收縮;單獨使用:向外展開 |
| AW_HOR_POSITIVE | 水平向右 | |
| AW_HOR_NEGATIVE | 水平向左 | |
| AW_VER_POSITIVE | 垂直向下 | |
| AW_VER_NEGATIVE | 垂直向上 | |
打開窗體動畫代碼
// 在構造函數或 Load 事件中
AnimateWindow(this.Handle, 1000, AW_SLIDE | AW_CENTER); // 1秒從中心展開
關閉窗體動畫代碼
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
AnimateWindow(this.Handle, 500, AW_SLIDE | AW_VER_POSITIVE | AW_HIDE); // 0.5秒向下收縮隱藏
}
組合邏輯解析
- 打開:
AW_SLIDE | AW_CENTER → 從中心點向四周滑動展開。
- 關閉:
AW_SLIDE | AW_VER_POSITIVE | AW_HIDE → 向下滑動並隱藏(模擬最小化到任務欄)。
- 若需淡入:
AW_BLEND | AW_ACTIVATE(打開)、AW_BLEND | AW_HIDE(關閉)。
常見誤區
- 忘記
AW_HIDE 導致關閉無動畫。
AW_BLEND 與 AW_SLIDE 同時指定 → 行為未定義。
- 在
FormClosing 中調用動畫可能因窗體已開始銷毀而失效,推薦 FormClosed。
- 上一篇文章: C# 窗體動畫顯示(三):完整代碼與 AnimateWindow 參數詳解
- 下一篇文章: C# 窗體動畫顯示(一):AnimateWindow API 引入與基本用法
Copyright ©
程式碼之家 All Rights Reserved