动画显示窗体

*实例说明 
    当用户启动程序后,普通的程序窗口都是瞬间显示到屏幕上,这样未免有些生硬。如果窗口能够慢慢的展现在用户面前,将会是什么样的效果?本例设计的是一个动画显示的窗体,该程序运行后,窗体是慢慢的以拉伸的效果显示到用户的面前。当关闭时也是一样慢慢的消失。本例运行效果如图1.32所示。


 *技术要点 
Windows提供了一个API函数Animate Window,该函数可以实现窗体的动画效果,AnimateWindow函数在C#中的声明如下。
        [DllImportAttribute("user32.dll")]
        private static extern bool AnimateWindow(IntPtr  hwnd, int  dwTime, int  dwFlags);
参数说明如下。
     hwnd:目标窗口句柄。
     dwTime:动画的持续时间,数值越大动画效果的时间就越长。
    DwFlags: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;


DwFlags参数可选值含义如表1.1所示
表1.1                                                                   参数说明
标    志 描    述
AW_SLIDE 使用滑动类型。缺省则为滚动动画类型。当使用AW_CENTER标志时,这个标志就被忽略
AW_ACTIVE 激活窗口。在使用了AW_HIDE标志后不要使用这个标志
AW_BLEND 使用淡入效果。只有当hWnd为顶层窗口的时候才可以使用此标志
AW_HIDE 隐藏窗口,缺省则显示窗口
AW_CENTER 若使用了AW_HIDE标志,则使窗口向内重叠;若未使用AW_HIDE标志,则使窗口向外扩展
AW_HOR_POSITIVE 自左向右显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略
AW_HOR_NEGATIVE 自右向左显示窗口。当使用了 AW_CENTER 标志时该标志被忽略
AW_VER_POSITIVE 自顶向下显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略
AW_VER_NEGATIVE 自下向上显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略
 


*实现过程 
(1)创建一个项目,将其命名为Ex01_32,默认窗体为Form1。
(2)在窗体上添加PictureBox控件。
(3)设置PictureBox控件的Image属性。
(4)主要代码如下。
        public Form1( )
        {
            InitializeComponent( );
            AnimateWindow(this.Handle, 300, AW_SLIDE + AW_VER_NEGATIVE);//开始窗体动画
        }
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {  //结束窗体动画
           AnimateWindow(this.Handle, 300, AW_SLIDE + AW_VER_NEGATIVE + AW_HIDE);
        }
*举一反三 
根据本实例,读者可以开发以下程序。
   实现窗体的淡入淡出。
   实现窗体从中间扩散显示。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值