using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; /// <summary>
/// API窗体动态特效 /// Create By 悠游人生 namespace WinformSP { /// </summary> public partial class Form1 : Form { #region 构造函数 public Form1() { InitializeComponent(); //默认选择横向 this.rdoHor.Checked = true; } #endregion #region user32.dll
//导入user32.dll [System.Runtime.InteropServices.DllImport("user32")] //声明API函数 private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags); #endregion #region 常量
//正面_水平方向 const int AW_HOR_POSITIVE = 0x0001; //负面_水平方向 const int AW_HOR_NEGATIVE = 0x0002; //正面_垂直方向 const int AW_VER_POSITIVE = 0x0004; //负面_垂直方向 const int AW_VER_NEGATIVE = 0x0008; //由中间四周展开或 const int AW_CENTER = 0x0010; //隐藏对象 const int AW_HIDE = 0x10000; //显示对象 const int AW_ACTIVATE = 0x20000; //拉幕滑动效果 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> /// 窗体上下拉动 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSP1_Click(object sender, EventArgs e) { //动画——窗体向上拖拉 AnimateWindow(this.Handle, 1000, AW_SLIDE | AW_HIDE | IsHorOrVer(1)); //动画——窗体向下拖拉 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) { //动画——窗体淡出特效 AnimateWindow(this.Handle, 1000, AW_BLEND | AW_HIDE | IsHorOrVer(1)); //动画——窗体淡入特效 AnimateWindow(this.Handle, 1000, AW_BLEND | AW_ACTIVATE | IsHorOrVer(0)); }
/// <summary>
/// 窗体展开缩小 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSP3_Click(object sender, EventArgs e) { //动画——窗体由四周向中心缩小直至消失 AnimateWindow(this.Handle, 1000, AW_CENTER | AW_HIDE | IsHorOrVer(1)); //动画——窗体由中心向四周扩展 AnimateWindow(this.Handle, 1000, AW_CENTER | AW_ACTIVATE | IsHorOrVer(0)); }
#endregion } } 界面如下
![]() |
|