首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 窗體動畫顯示(一):AnimateWindow API 引入與基本用法

     編輯:關於C語言

引言

默認窗體瞬間顯示/關閉缺乏視覺反饋。Windows 提供 AnimateWindow API,可實現滑動、淡入淡出、中心展開等豐富動畫,無需複雜 GDI+ 代碼。

API 簽名與 P/Invoke 聲明


[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);
  • hwnd:窗體句柄(this.Handle)。
  • dwTime:動畫持續毫秒數,值越大越慢。
  • dwFlags:動畫類型組合標誌(位或運算)。

常用標誌常量


public const int AW_HOR_POSITIVE = 0x00000001;
public const int AW_HOR_NEGATIVE = 0x00000002;
public const int AW_VER_POSITIVE = 0x00000004;
public const int AW_VER_NEGATIVE = 0x00000008;
public const int AW_CENTER       = 0x00000010;
public const int AW_HIDE         = 0x00010000;
public const int AW_ACTIVATE     = 0x00020000;
public const int AW_SLIDE        = 0x00040000;
public const int AW_BLEND        = 0x00080000;

最小化示例


public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        // 打開:1秒中心展開
        AnimateWindow(this.Handle, 1000, AW_SLIDE | AW_CENTER);
    }

    private void Form1_FormClosed(object sender, FormClosedEventArgs e)
    {
        // 關閉:0.5秒向下滑動隱藏
        AnimateWindow(this.Handle, 500, AW_SLIDE | AW_VER_POSITIVE | AW_HIDE);
    }
}

效果預期

  • 啟動程序 → 窗體從屏幕中心由小變大展開。
  • 關閉程序 → 窗體向下滑動消失。

後續內容

  1. 詳細講解每個標誌含義、互斥規則、組合效果對照表。
  2. 提供完整可編譯項目代碼、常見坑與進階替代方案(WPF/WinUI)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved