• Delphi WinAPI AnimateWindow 使您能够在显示或隐藏窗口时产生特殊效果


    Delphi WinAPI AnimateWindow - 使您能够在显示或隐藏窗口时产生特殊效果

    AnimateWindow //使您能够在显示或隐藏窗口时产生特殊效果。有四种类型的动画:滚动、滑动、折叠或展开,以及alpha混合淡入淡出。

    原型:

    BOOL AnimateWindow(
      [in] HWND  hWnd, //要设置动画的窗口的控制柄。调用线程必须拥有此窗口。
      [in] DWORD dwTime,  //播放动画所需的时间,以毫秒为单位。通常,播放动画需要200毫秒。
      [in] DWORD dwFlags  //动画的类型。此参数可以是以下一个或多个值。请注意,默认情况下,这些标志在显示窗口时生效。要在隐藏窗口时生效,请使用AW_HIDE和带有适当标志的逻辑OR运算符。
    );
    

    参数:

      dwFlags //动画的类型。此参数可以是以下一个或多个值。请注意,默认情况下,这些标志在显示窗口时生效。要在隐藏窗口时生效,请使用AW_HIDE和带有适当标志的逻辑OR运算符。  

      • AW_ACTIVATE  //激活窗口。不要将此值用于AW_HIDE。
      • AW_BLEND  //使用渐变效果。只有当hwnd是顶级窗口时,才能使用此标志。
      • AW_CENTER  //如果使用AW_HIDE,则使窗口显示为向内折叠;如果未使用AW_HIDE,则使窗口显示为向外展开。不同的方向标志无效。
      • AW_HIDE  //隐藏窗口。默认情况下,将显示该窗口。
      • AW_HOR_POSITIVE  //从左到右设置窗口的动画。此标志可用于滚动或滑动动画。当与AW_CENTER或AW_BLEND一起使用时,它将被忽略。
      • AW_HOR_NEGATIVE  //从右向左设置窗口的动画。此标志可用于滚动或滑动动画。当与AW_CENTER或AW_BLEND一起使用时,它将被忽略。
      • AW_SLIDE  //使用幻灯片动画。默认情况下,使用滚动动画。与AW_CENTER一起使用时,此标志将被忽略。
      • AW_VER_POSITIVE  //从上到下设置窗口动画。此标志可用于滚动或滑动动画。当与AW_CENTER或AW_BLEND一起使用时,它将被忽略。
      • AW_VER_NEGATIVE  //从下到上设置窗口的动画。此标志可用于滚动或滑动动画。当与AW_CENTER或AW_BLEN一起使用时,它将被忽略

    返回值(类型:布尔):

    • 如果函数成功,则返回值为非零。
    • 如果函数失败,返回值为零。在以下情况下,该功能将失败:
    • 如果窗口已经可见,并且您正在尝试显示该窗口。
    • 如果窗口已隐藏,而您正试图隐藏窗口。
    • 如果没有为滑动或滚动动画指定方向。
    • 尝试使用AW_BLEND设置子窗口的动画时。
    • 如果线程不拥有窗口。请注意,在本例中,AnimateWindow失败,但GetLastError返回ERROR_SUCCESS。

    要获取扩展的错误信息,请调用GetLastError函数。

     

    其他:

    • 使用滑动或滚动动画时,必须指定方向。它可以是AW_HOR_POSITIVE, AW_HOR_NEGATIVE, AW_VER_POSITIVE, or AW_VER_NEGATIVE。
    • 可以将AW_HOR_POSITIVE or AW_HOR_NEGATIVE with AW_VER_POSITIVE or AW_VER_NEGATIVE组合起来,以对角设置窗口动画。
    • 窗口及其子窗口的窗口过程应处理任何WM_PRINT或WM_PRINTCLIENT消息。对话框、控件和常用控件已经可以处理WM_PRINTCLIENT。默认窗口过程已经处理WM_打印。
    • 如果子窗口显示为部分剪裁,则在设置动画时,其剪裁处将有孔。
    • AnimateWindow支持RTL窗口。
    • 避免为有阴影的窗口设置动画,因为它会产生视觉上分散注意力的、不稳定的动画。

    创建时间:2022.03.28  更新时间:

  • 相关阅读:
    sql 行转列
    wm_concat函数 用法
    PL/SQL如何调试Oracle存储过程
    Oracle&SQLServer中实现跨库查询
    Oracle 中 decode 函数用法
    Oracle中给用户赋予debug权限
    Oracle中的NVL函数
    oracle 触发器 pragma autonomous_transaction
    ORACLE中%TYPE和%ROWTYPE的使用
    A complete example using RAISE_APPLICATION_ERROR : raise_application_error
  • 原文地址:https://www.cnblogs.com/guorongtao/p/16066317.html
Copyright © 2020-2023  润新知