C# 仿金山毒霸启动和关闭淡入淡出效果

时间:2022-11-06 10:20:20

原文 C# 仿金山毒霸启动和关闭淡入淡出效果

01 #region 窗体关闭效果
02  
03 #region 私有方法
04 [DllImportAttribute("user32.dll")]
05 private static extern bool AnimateWindow(IntPtr whnd, int dwtime, int dwflag);
06 #endregion
07  
08 /*
09 1. AW_SLIDE : 使用滑动类型, 默认为该类型. 当使用 AW_CENTER 效果时, 此效果被忽略
10 2. AW_ACTIVE: 激活窗口, 在使用了 AW_HIDE 效果时不可使用此效果
11 3. AW_BLEND: 使用淡入效果
12 4. AW_HIDE: 隐藏窗口
13 5. AW_CENTER: 与 AW_HIDE 效果配合使用则效果为窗口几内重叠,  单独使用窗口向外扩展.
14 6. AW_HOR_POSITIVE : 自左向右显示窗口
15 7. AW_HOR_NEGATIVE: 自右向左显示窗口
16 8. AW_VER_POSITVE: 自顶向下显示窗口
17 9. AW_VER_NEGATIVE : 自下向上显示窗口
18 */
19 public const Int32 AW_HOR_POSITIVE = 0x00000001;
20 public const Int32 AW_HOR_NEGATIVE = 0x00000002;
21 public const Int32 AW_VER_POSITIVE = 0x00000004;
22 public const Int32 AW_VER_NEGATIVE = 0x00000008;
23 public const Int32 AW_CENTER = 0x00000010;
24 public const Int32 AW_HIDE = 0x00010000;
25 public const Int32 AW_ACTIVATE = 0x00020000;
26 public const Int32 AW_SLIDE = 0x00040000;
27 public const Int32 AW_BLEND = 0x00080000;
28  
29  
30  
31 /// <summary>
32 /// 由边界向中心扩展渐进关闭窗口
33 /// </summary>
34 public static void HideFXCenter(IntPtr wnd, int dwtime)
35 {
36     AnimateWindow(wnd, dwtime, AW_CENTER | AW_HIDE | AW_SLIDE);
37 }
38  
39 #endregion

调用方法

启动效果: 在窗体加载事件里面加上

1 AnimateWindow(this.Handle, 800, AW_SLIDE + AW_CENTER);

关闭效果: 在窗体关闭的事件里加上

1 HideFXCenter(this.Handle, 400);

声明: 本文由(孤狼)原创编译,转载请保留链接: C# 仿金山毒霸启动和关闭淡入淡出效果