Welcome

首页 / 软件开发 / C# / C#中如何制作以动画的形式显示窗体

C#中如何制作以动画的形式显示窗体2011-04-20一般的, 当我们启动一个应用程序后, 普通的应用程序窗口都是瞬间显示到屏幕上. 您是 否想象过这样一种情景 : 打开一个应用程序后, 窗口的显示跟幻灯片一样变幻莫测,丰富多 彩? 也许不能登大雅之堂, 但至少可以娱乐自己.

好了, 进入正题: 您现在可以想 象这样一幅画面: 当您启动一个应用程序后, 显示器中央出现一个小点, 然后慢慢变大, 向 四周不断扩展, 直到窗口全部显示. 而当您关闭它时它又会从上向下慢慢地从显示器中消 失....这将是什么效果? 呵呵, 如果您愿意, 下面就跟着我一起完成这样一个伟大的梦想 吧.

设计思路是什么呢? 如果您很聪明, 会马上意识到这个工程很可能要用到 Windows提供 API. 上网一查, 果然有一个函数 : AnimateWindow, 它可以实现窗体的动画效 果. 所以剩下的工作就是查看 MSDN, 了解更多的关于 AnimateWindow 函数的信息.

下面结合本例详细介绍 AnimateWindow 函数在 C#中的应用.

声明方式:

声明
[DllImportAttribute("user32.dll")]
private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);

参数说明:

Code
(1). IntPtr hwnd: 目标窗口 的句柄对象, 一般为 this.Handle
(2). int dwTime: 动画的持续时间, 数值越大动 画效果的时间越长
(3). int dwFlags: 动画效果类型选项, 在C#中声明如下:
注: 您程序中只声明需要的动画类型即可, 关于每个参数的含义会在后面详细说明
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_ACTIVATE = 0x00020000;
public const Int32 AW_SLIDE = 0x00040000;
public const Int32 AW_BLEND = 0x00080000;