Windows Api实现winform程序动态效果

winform实现一些动态效果比较费劲,如果是简单的显示隐藏,可以使用Windows Api 提供的接个接口,不用自己再费事调试效果了。
调用示例

//显示窗体
AnimateWindow(this.monthCalendar1.Handle, 300, AW_HIDE | AW_SLIDE | AW_CENTER);
//隐藏窗体
AnimateWindow(this.monthCalendar1.Handle, 300, AW_ACTIVATE | AW_BLEND);

API引用
//导入user32.dll
   [System.Runtime.InteropServices.DllImport("user32")]
   //声明API函数
   public static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);

   //
   /// <summary>
   /// 由左向右
   /// </summary>
   public const int AW_HOR_POSITIVE = 0x0001;
   /// <summary>
   /// 由右向左
   /// </summary>
   public const int AW_HOR_NEGATIVE = 0x0002;
   /// <summary>
   /// 由上到下
   /// </summary>
   public const int AW_VER_POSITIVE = 0x0004;
   /// <summary>
   /// 由下到上
   /// </summary>
   public const int AW_VER_NEGATIVE = 0x0008;
   /// <summary>
   /// 由中间四周展开或由四周向中间缩小
   /// </summary>
   public const int AW_CENTER = 0x0010;
   /// <summary>
   /// 隐藏对象
   /// </summary>
   public const int AW_HIDE = 0x10000;
   /// <summary>
   /// 显示对象
   /// </summary>
   public const int AW_ACTIVATE = 0x20000;
   /// <summary>
   /// 拉幕滑动效果
   /// </summary>
   public const int AW_SLIDE = 0x40000;
   /// <summary>
   /// 淡入淡出渐变效果
   /// </summary>
   public const int AW_BLEND = 0x80000;