Сведения об элементах управления анимацией

Элемент управления анимацией — это окно, в котором отображается клип аудио-видео с чередованием (AVI). Клип AVI — это серия растровых кадров, таких как фильм. Элементы управления анимацией могут отображать только клипы AVI, которые не содержат звук.

Одним из распространенных способов использования элемента управления анимацией является указание системного действия во время длительной операции. Это возможно, так как поток операций продолжает выполняться, пока отображается клип AVI. Например, диалоговое окно "Поиск" в Windows Обозреватель отображает движущееся стекло в виде системы поиска файла.

Примечание.

Если вы используете ComCtl32.dll версии 6, поток не поддерживается; Убедитесь, что приложение не блокирует пользовательский интерфейс или анимация не будет выполняться.

 

Элемент управления анимацией может отображать клип AVI, исходящий из несжатого файла AVI или из файла AVI, который был сжатым с помощью кодировки run-length (BI_RLE8). Вы можете добавить клип AVI в приложение в качестве ресурса AVI, или клип может сопровождать приложение в виде отдельного файла AVI.

Примечание.

Файл AVI или ресурс не должен иметь звуковой канал. Возможности элемента управления анимацией очень ограничены и подвержены изменению. Если вам нужен элемент управления для предоставления возможностей воспроизведения мультимедиа и записи для приложения, можно использовать элемент управления MCIWnd. Дополнительные сведения см. в разделе "Класс окна MCIWnd".

 

В этом разделе рассматриваются следующие разделы.

Создание элемента управления анимацией

Элемент управления анимацией принадлежит классу окна ANIMATE_CLASS . Вы создаете элемент управления анимацией с помощью функции CreateWindow или CreateWindowEx или макроса Animate_Create. Макрос помещает элемент управления анимации в левом верхнем углу родительского окна и, если стиль ACS_CENTER не указан, задает ширину и высоту элемента управления на основе измерений кадра в клипе AVI. Если указан ACS_CENTER , Animate_Create задает ширину и высоту элемента управления равным нулю. Функцию SetWindowPos можно использовать для задания положения и размера элемента управления.

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

Сведения об сообщениях управления анимацией

Приложение отправляет сообщения в элемент управления анимацией для открытия, воспроизведения, остановки и закрытия соответствующего клипа AVI. Каждое сообщение содержит один или несколько макросов, которые можно использовать вместо явной отправки сообщения.

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

Если элемент управления анимации имеет стиль ACS_AUTOPLAY , элемент управления начинает воспроизводить клип AVI сразу после открытия файла AVI или ресурса AVI. В противном случае приложение может использовать сообщение ACM_PLAY для запуска клипа AVI. Приложение может остановить клип в любое время, отправив ACM_STOP сообщение. Последний кадр, который воспроизводился, по-прежнему отображается, когда элемент управления завершает воспроизведение клипа AVI или при отправке ACM_STOP .

Элемент управления анимацией может отправлять два кода уведомлений в родительское окно: ACN_START и ACN_STOP. Большинство приложений не обрабатывают ни одно уведомление.

Чтобы закрыть файл AVI или ресурс AVI и удалить его из памяти, приложение может использовать макрос Animate_Close, который отправляет ACM_OPEN с именем файла или именем ресурса, заданным значением NULL.

Обработка сообщений по умолчанию

В этом разделе описываются сообщения окна, обрабатываемые процедурой окна для класса ANIMATE_CLASS окна.

Message Обработка выполнена
WM_CLOSE Освобождает файл AVI или ресурс AVI, связанный с элементом управления анимацией.
WM_DESTROY Освобождает файл AVI или ресурс AVI, освобождает внутреннюю структуру данных, а затем вызывает функцию DefWindowProc.
WM_ERASEBKGND Удаляет фон окна с помощью текущего цвета фона для статических элементов управления.
WM_NCCREATE Выделяет и инициализирует внутреннюю структуру данных, а затем вызывает DefWindowProc.
WM_NCHITTEST Возвращает значение теста HTTRANSPARENT.
WM_PAINT Рисует кадр AVI в элементе управления анимации.
WM_SIZE Проверяет, имеет ли элемент управления стиль ACS_CENTER . Если элемент управления не используется, он вызывает DefWindowProc. В противном случае он центрирует анимацию в элементе управления, делает элемент управления недействительным, а затем вызывает DefWindowProc.