AnimateWindow 函数 (winuser.h)

使你可以在显示或隐藏窗口时产生特殊效果。 有四种类型的动画:滚动、滑动、折叠或展开和 alpha 混合淡化。

语法

BOOL AnimateWindow(
  [in] HWND  hWnd,
  [in] DWORD dwTime,
  [in] DWORD dwFlags
);

参数

[in] hWnd

类型:HWND

要进行动画处理的窗口的句柄。 调用线程必须拥有此窗口。

[in] dwTime

类型:DWORD

播放动画所需的时间(以毫秒为单位)。 通常,播放一个动画需要 200 毫秒。

[in] dwFlags

类型:DWORD

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

含义
AW_ACTIVATE
0x00020000
激活窗口。 不要将此值用于 AW_HIDE
AW_BLEND
0x00080000
使用淡化效果。 仅当 hwnd 是顶级窗口时,才能使用此标志。
AW_CENTER
0x00000010
如果使用 AW_HIDE ,则使窗口向内折叠,如果未使用 AW_HIDE ,则向外展开。 各种方向标志不起作用。
AW_HIDE
0x00010000
隐藏窗口。 默认情况下,将显示窗口。
AW_HOR_POSITIVE
0x00000001
从左到右对窗口进行动画处理。 此标志可用于滚动或幻灯片动画。 与 AW_CENTERAW_BLEND 一起使用时,将忽略它。
AW_HOR_NEGATIVE
0x00000002
从右到左对窗口进行动画处理。 此标志可用于滚动或幻灯片动画。 与 AW_CENTERAW_BLEND 一起使用时,将忽略它。
AW_SLIDE
0x00040000
使用幻灯片动画。 默认情况下,使用滚动动画。 与 AW_CENTER 一起使用时,将忽略此标志。
AW_VER_POSITIVE
0x00000004
从上到下对窗口进行动画处理。 此标志可用于滚动或幻灯片动画。 与 AW_CENTERAW_BLEND 一起使用时,将忽略它。
AW_VER_NEGATIVE
0x00000008
从下到上对窗口进行动画处理。 此标志可用于滚动或幻灯片动画。 与 AW_CENTERAW_BLEND 一起使用时,将忽略它。

返回值

类型: BOOL

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 在以下情况下,函数将失败:

  • 如果窗口已经可见,并且你正在尝试显示该窗口。
  • 如果窗口已隐藏,并且你正在尝试隐藏该窗口。
  • 如果没有为幻灯片或滚动动画指定方向。
  • 尝试使用 AW_BLEND 对子窗口进行动画 处理时。
  • 如果线程不拥有窗口,则为 。 请注意,在这种情况下, AnimateWindow 会失败,但 GetLastError 返回 ERROR_SUCCESS
若要获得更多的错误信息,请调用 GetLastError 函数。

注解

若要显示或隐藏没有特殊效果的窗口,请使用 ShowWindow

使用幻灯片或滚动动画时,必须指定方向。 它可以是 AW_HOR_POSITIVEAW_HOR_NEGATIVE、AW_VER_POSITIVE或AW_VER_NEGATIVE。

可以将 AW_HOR_POSITIVEAW_HOR_NEGATIVEAW_VER_POSITIVEAW_VER_NEGATIVE 组合在一起,以对角线对角线对窗口进行动画处理。

窗口及其子窗口的窗口过程应处理任何 WM_PRINTWM_PRINTCLIENT 消息。 对话框、控件和公共控件已处理 WM_PRINTCLIENT。 默认窗口过程已处理 WM_PRINT

如果子窗口显示为部分剪裁,则动画显示时,将有一个剪裁处的孔。

AnimateWindow 支持 RTL 窗口。

避免对具有投影的窗口进行动画处理,因为它会产生令人分心的、令人分心的动画。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winuser.h (包括 Windows.h)
Library User32.lib
DLL User32.dll
API 集 在 Windows 8) 中引入的 ext-ms-win-ntuser-window-l1-1-0 (

请参阅

概念性

其他资源

引用

ShowWindow

WM_PRINT

WM_PRINTCLIENT

Windows