zoukankan      html  css  js  c++  java
  • 使用AnimateWindow来实现窗口淡入淡出(主要有四种动画,滚动,滑动,折叠或展开,和淡入淡出)

    如果是在VC6下进行编译,应引入下面的预编译宏,注意放在windows.h的前面
    #undef  WINVER   
    #define  WINVER   0x500
    为什么要引入上面的宏呢?看看winuser.h里面该API的声明就明白了:
    #if(WINVER >= 0x0500)
    WINUSERAPI
    BOOL
    WINAPI
    AnimateWindow(
        HWND hWnd,
        DWORD dwTime,
        DWORD dwFlags);
    #endif /* WINVER >= 0x0500 */
    如果你不进行这个宏的从定义,该API就被排除了,编译会有error。

    Declared in Winuser.h, include Windows.h

    函数原型:
    BOOL AnimateWindow(
        HWND hwnd,
        DWORD dwTime,
        DWORD dwFlags);   
       
    函数功能:
    该函数能在显示与隐藏窗口时产生特殊类型的动画效果,主要有四种动画,滚动,滑动,折叠或展开,和淡入淡出。

    参数含义:
    hwnd: 指定产生动画的窗口的句柄。
    dwTime:指明动画持续的时间(以微秒计),完成一个动画的标准时间为200微秒。
    dwFags:指定动画类型,这个参数可以是一个或多个下列标志的组合。标志描述:    
        AW_SLIDE:  使用滑动类型,缺省则为滚动动画类型,当使用AW_CENTER标志时,这个标志就被忽略。    
        AW_ACTIVATE: 激活窗口,不要和AW_HIDE标志一起使用。    
        AW_BLEND:  实现淡出效果。只有当hWnd为顶层窗口的时候才可以使用此标志。    
        AW_HIDE:  隐藏窗口,缺省则显示窗口。    
        AW_CENTER:  若使用了AW_HIDE标志,则使窗口向内重叠,即收缩窗口;若未使用AW_HIDE标志,则使窗口向外扩展,即展开窗口。    
        AW_HOR_POSITIVE: 自左向右显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER或者AW_BLEND标志时,该标志将被忽略。    
        AW_VER_POSITIVE: 自顶向下显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER或者AW_BLEND标志时,该标志将被忽略。    
        AW_VER_NEGATIVE: 自下向上显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER或者AW_BLEND标志时,该标志将被忽略。   

    返回值:
    如果函数成功,返回值为非零;如果函数失败,返回值为零。在下列情况下函数将失败:
    1、如果窗口使用窗口区域,但是XP下不会失败;
    2、窗口已经显示了,你还想通过这个API来显示窗口;
    3、窗口已经消失了,你试图通过这个API来隐藏窗口;
    4、没有为滚动或者滑动指定方向;
    5、对一个子窗口使用AW_BLEND;
    6、调用这个API的线程并不拥有hwnd指定的窗口;

    函数信息:
    最小DLL版本: user32.dll 
    头文件: Declared in Winuser.h, include Windows.h 
    引入的库: User32.lib 
    最小操作系统: Windows 98, Windows 2000

    注意:使用AnimateWindow来进行淡出时,此时窗口收不到鼠标消息了,如果你有需求:在窗口淡出即将消失时,如果鼠标移上去,窗口恢复正常显示,并且不消失。使用AnimateWindow是没办法实现的,那是否有其它的方法呢?下次再谈,o(∩_∩)o...。

    [END]

    http://blog.csdn.net/magictong/article/details/4074394

  • 相关阅读:
    网页自动满屏
    页面字符编码不一致的处理
    数据库迁移:从SQL2005到SQL2008
    一条DELETE语句
    网站的最大并发连接数
    C#为网页生成缩略图
    在类中使用page对象用HttpContext.Current
    域名解析、子域名、cname别名指向、MX记录、泛域名与泛解析、域名绑定、域名转向
    C#数据库编程中SqlDataAdapter与DataSet的区别与联系
    gridview不能删除修改数据的问题
  • 原文地址:https://www.cnblogs.com/findumars/p/6143424.html
Copyright © 2011-2022 走看看