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 更新时间:
博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你有所帮助,谢谢!