using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
/// <summary>
/// API窗體動(dòng)態(tài)特效
/// Create By 悠游人生
namespace WinformSP
{
/// </summary>
public partial class Form1 : Form
{
#region 構(gòu)造函數(shù)
public Form1()
{
InitializeComponent();
//默認(rèn)選擇橫向
this.rdoHor.Checked = true;
}
#endregion
#region user32.dll
//導(dǎo)入user32.dll
[System.Runtime.InteropServices.DllImport("user32")]
//聲明API函數(shù)
private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);
#endregion
#region 常量
//正面_水平方向
const int AW_HOR_POSITIVE = 0x0001;
//負(fù)面_水平方向
const int AW_HOR_NEGATIVE = 0x0002;
//正面_垂直方向
const int AW_VER_POSITIVE = 0x0004;
//負(fù)面_垂直方向
const int AW_VER_NEGATIVE = 0x0008;
//由中間四周展開(kāi)或
const int AW_CENTER = 0x0010;
//隱藏對(duì)象
const int AW_HIDE = 0x10000;
//顯示對(duì)象
const int AW_ACTIVATE = 0x20000;
//拉幕滑動(dòng)效果
const int AW_SLIDE = 0x40000;
//淡入淡出漸變效果
const int AW_BLEND = 0x80000;
#endregion
#region 判斷方向
public int IsHorOrVer(int pos)
{
int rtn = 0;
//判斷是正方向還是反方向
if (pos.Equals(0))
{
//判斷是橫向還是縱向
if (rdoHor.Checked)
rtn = AW_HOR_POSITIVE;
else rtn = AW_VER_POSITIVE;
}
else if (pos.Equals(1))
{
//判斷是橫向還是縱向
if (rdoHor.Checked)
rtn = AW_HOR_NEGATIVE;
else rtn = AW_VER_NEGATIVE;
}
return rtn;
}
#endregion
#region 按鈕事件
/// <summary>
/// 窗體上下拉動(dòng)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSP1_Click(object sender, EventArgs e)
{
//動(dòng)畫——窗體向上拖拉
AnimateWindow(this.Handle, 1000, AW_SLIDE | AW_HIDE | IsHorOrVer(1));
//動(dòng)畫——窗體向下拖拉
AnimateWindow(this.Handle, 1000, AW_SLIDE | AW_ACTIVATE | IsHorOrVer(0));
}
/// <summary>
/// 窗體淡入淡出
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSP2_Click(object sender, EventArgs e)
{
//動(dòng)畫——窗體淡出特效
AnimateWindow(this.Handle, 1000, AW_BLEND | AW_HIDE | IsHorOrVer(1));
//動(dòng)畫——窗體淡入特效
AnimateWindow(this.Handle, 1000, AW_BLEND | AW_ACTIVATE | IsHorOrVer(0));
}
/// <summary>
/// 窗體展開(kāi)縮小
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSP3_Click(object sender, EventArgs e)
{
//動(dòng)畫——窗體由四周向中心縮小直至消失
AnimateWindow(this.Handle, 1000, AW_CENTER | AW_HIDE | IsHorOrVer(1));
//動(dòng)畫——窗體由中心向四周擴(kuò)展
AnimateWindow(this.Handle, 1000, AW_CENTER | AW_ACTIVATE | IsHorOrVer(0));
}
#endregion
}
}
界面如下