Поделиться через


Функция AnimateWindow (winuser.h)

Позволяет создавать специальные эффекты при отображении или скрытии окон. Существует четыре типа анимации: переворачивание, скольжение, свертывание или развертывание, а также альфа-смешивание.

Синтаксис

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_CENTER или AW_BLEND.
AW_HOR_NEGATIVE
0x00000002
Анимирует окно справа налево. Этот флаг можно использовать с анимацией наката или слайда. Он игнорируется при использовании с AW_CENTER или AW_BLEND.
AW_SLIDE
0x00040000
Использует анимацию слайдов. По умолчанию используется анимация наката. Этот флаг игнорируется при использовании с AW_CENTER.
AW_VER_POSITIVE
0x00000004
Анимирует окно сверху вниз. Этот флаг можно использовать с анимацией наката или слайда. Он игнорируется при использовании с AW_CENTER или AW_BLEND.
AW_VER_NEGATIVE
0x00000008
Анимирует окно снизу вверх. Этот флаг можно использовать с анимацией наката или слайда. Он игнорируется при использовании с AW_CENTER или AW_BLEND.

Возвращаемое значение

Тип: BOOL

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Функция завершится ошибкой в следующих ситуациях:

  • Если окно уже отображается и вы пытаетесь отобразить окно.
  • Если окно уже скрыто и вы пытаетесь скрыть окно.
  • Значение , если для анимации слайда или ролл-анимации не указано направление.
  • При попытке анимировать дочернее окно с помощью AW_BLEND.
  • Если поток не является владельцем окна. Обратите внимание, что в этом случае AnimateWindow завершается сбоем, но GetLastError возвращает ERROR_SUCCESS.
Чтобы получить расширенные сведения об ошибке, вызовите функцию GetLastError .

Комментарии

Чтобы отобразить или скрыть окно без специальных эффектов, используйте команду ShowWindow.

При использовании анимации слайда или ролл-анимации необходимо указать направление. Это может быть AW_HOR_POSITIVE, AW_HOR_NEGATIVE, AW_VER_POSITIVE или AW_VER_NEGATIVE.

Вы можете объединять AW_HOR_POSITIVE или AW_HOR_NEGATIVE с AW_VER_POSITIVE или AW_VER_NEGATIVE для анимации окна по диагонали.

Процедуры окна и его дочерних окон должны обрабатывать любые сообщения WM_PRINT или WM_PRINTCLIENT . Диалоговые окна, элементы управления и общие элементы управления уже обрабатывают WM_PRINTCLIENT. Процедура окна по умолчанию уже обрабатывает WM_PRINT.

Если дочернее окно отображается частично обрезано, при анимированном анимации в нем будут отверстия, в которых оно обрезается.

AnimateWindow поддерживает окна RTL.

Избегайте анимации окна с тенью, так как оно создает визуально отвлекающие эффекты анимации.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll
Набор API ext-ms-win-ntuser-window-l1-1-0 (представлено в Windows 8)

См. также раздел

Основные понятия

Другие ресурсы

Справочные материалы

Showwindow

WM_PRINT

WM_PRINTCLIENT

Windows