看到別人程式中使用了此API,稍微學習一下。AnimateWindow主要是實現視窗動畫功能。 直接看代碼。
using System.Runtime.InteropServices;
namespace User32AnimateWindowAPI
{
public partial class Form1 : Form
{
/// <summary>
/// 視窗產生動畫效果方法。
/// </summary>
/// <param name="whnd">產生動畫的視窗的控制代碼</param>
/// <param name="dwtime">動畫持續的時間(以微秒計),完成一個動畫的標準時間為200微秒。</param>
/// <param name="dwflag">動畫類型</param>
/// <returns></returns>
[DllImport("user32")]
private static extern bool AnimateWindow(IntPtr whnd, int dwtime, int dwflag);
#region 動畫類型
//從左至右
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;
//隱藏視窗
public const Int32 AW_HIDE = 0x00010000;
//淡入淡出效果
public const Int32 AW_BLEND = 0x00080000;
//示視窗
public const Int32 AW_ACTIVATE = 0x00020000;
#endregion
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//調用
AnimateWindow(this.Handle, 3000, AW_CENTER | AW_ACTIVATE);
}
}
}
AnimateWindow函數說明:
函數功能:該函數能在顯示與隱藏視窗時能產生特殊的效果。有兩種類型的動畫效果:滾動動畫和滑動動畫。
函數原型:BOOL AnimateWindow(HWND hWnd,DWORD dwTime,DWORD dwFlags);
參數:
hWnd:指定產生動畫的視窗的控制代碼。
dwTime:指明動畫持續的時間(以微秒計),完成一個動畫的標準時間為200微秒。
dwFags:指定動畫類型。這個參數可以是一個或多個下列標誌的組合。標誌描述:
AW_SLIDE:使用滑動類型。預設則為滾動動畫類型。當使用AW_CENTER標誌時,這個標誌就被忽略
AW_ACTIVE:啟用視窗。在使用了AW_HIDE標誌後不要使用這個標誌。
AW_BLEND:使用淡出效果。只有當hWnd為頂層視窗的時候才可以使用此標誌。
AW_HIDE:隱藏視窗,預設則顯示視窗。
AW_CENTER:若使用了AW_HIDE標誌,則使視窗向內重疊;若未使用AW_HIDE標誌,則使視窗向外擴充。
AW_HOR_POSITIVE:自左向右顯示視窗。該標誌可以在滾動動畫和滑動動畫中使用。當使用AW_CENTER標誌時,該標誌將被忽略。
AW_HOR_NEGATIVE:自右向左顯示視窗。該標誌可以在滾動動畫和滑動動畫中使用。當使用AW_CENTER標誌時,該標誌將被忽略。
AW_VER_POSITIVE:自頂向下顯示視窗。該標誌可以在滾動動畫和滑動動畫中使用。當使用AW_CENTER標誌時,該標誌將被忽略。
AW_VER_NEGATIVE:自下向上顯示視窗。該標誌可以在滾動動畫和滑動動畫中使用。當使用AW_CENTER標誌時,該標誌將被忽略。
傳回值:如果函數成功,傳回值為非零;如果函數失敗,傳回值為零。在下列情況下函數將失敗:
視窗使用了視窗邊界;視窗已經可見仍要顯示視窗;視窗已經隱藏仍要隱藏視窗。若想獲得更多錯誤資訊,請調用GetLastError函數。
備忘:1) 可以將AW_HOR_POSITIVE或AW_HOR_NEGTVE與AW_VER_POSITVE或AW_VER_NEGATIVE組合來啟用一個視窗。
2) 可能需要在該視窗的視窗過程和它的子視窗的視窗過程中處理WM_PRINT或WM_PRINTCLIENT訊息。對話方塊,控制,及共用控制已處理WM_PRINTCLIENT訊息,預設視窗過程也已處理WM_PRINT訊息。