zoukankan      html  css  js  c++  java
  • 【笔记】动画显示窗体

    实例说明

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

    技术要点

    Windows提供了一个API函数Animate Window,该函数可以实现窗体的动画效果,AnimateWindow函数在C#中的声明如下

    1  [DllImportAttribute("user32.dll")]
    2         private static extern bool AnimateWindow(IntPtr  hwnd, int  dwTime, int  dwFlags);
    View Code

    参数说明如下。

    l     hwnd:目标窗口句柄。

    l     dwTime:动画的持续时间,数值越大动画效果的时间就越长。

    l     DwFlags:DwFlags参数是动画效果类型选项,该参数在C#中的声明如下

     1         public const Int32 AW_HOR_POSITIVE = 0x00000001;
     2         public const Int32 AW_HOR_NEGATIVE = 0x00000002;
     3         public const Int32 AW_VER_POSITIVE = 0x00000004;
     4         public const Int32 AW_VER_NEGATIVE = 0x00000008;
     5         public const Int32 AW_CENTER = 0x00000010;
     6         public const Int32 AW_HIDE = 0x00010000;
     7         public const Int32 AW_ACTIVATE = 0x00020000;
     8         public const Int32 AW_SLIDE = 0x00040000;
     9         public const Int32 AW_BLEND = 0x00080000;
    10         
    View Code

                                                                     参数说明

    标    志

    描    述

    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)主要代码如下

    1 public Form1( )
    2         {
    3             InitializeComponent( );
    4             AnimateWindow(this.Handle, 300, AW_SLIDE + AW_VER_NEGATIVE);//开始窗体动画
    5         }
    6         private void Form1_FormClosed(object sender, FormClosedEventArgs e)
    7         {  //结束窗体动画
    8            AnimateWindow(this.Handle, 300, AW_SLIDE + AW_VER_NEGATIVE + AW_HIDE);
    9         }
    View Code
  • 相关阅读:
    jquery.ajax,vue-resource,axios拦截器实现与携带cookie
    vs code 常用插件及说明
    Js/Jquery获取网页屏幕可见区域高度(转)
    vue的爬坑之路(三)之-----基于vue-cli的VueAwesomeSwiper轮播滑块插件的使用及常见问题(转)
    js中的深拷贝与浅拷贝
    沉浸式状态栏 关于状态栏高度的获取
    Cordova 常用命令及插件(转)
    video control
    canvas添加水印
    疑惑
  • 原文地址:https://www.cnblogs.com/TwinkleStar/p/4050169.html
Copyright © 2011-2022 走看看