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


Создание основных объектов анимации

Чтобы использовать анимацию Windows в приложении, сначала необходимо создать небольшой набор main объектов анимации.

Общие сведения

Используйте функцию CoCreateInstance для создания диспетчера анимации, таймера анимации и объектов библиотеки перехода.

Эти объекты потребуются для создания и отображения анимаций, поэтому их обычно не следует выпускать до завершения работы приложения. Если вероятность того, что какие-либо зарегистрированные обратные вызовы могли создать цикл ссылок, то освобождения объектов будет достаточно для правильной очистки. В противном случае приложение может выполнить очистку путем очистки обратных вызовов (передача NULL вместо каждого из них) или путем вызова метода Shutdown диспетчера анимации.

Пример кода

Следующий пример кода взят из MainWindow.cpp в примерах анимации Windows. см. метод CMainWindow::InitializeAnimation.

// Create the animation manager object

HRESULT hr = CoCreateInstance(
    CLSID_UIAnimationManager,
    NULL,
    CLSCTX_INPROC_SERVER,
    IID_PPV_ARGS(&m_pAnimationManager)
    );

if (SUCCEEDED(hr))
{
    // Create the animation timer object

    hr = CoCreateInstance(
        CLSID_UIAnimationTimer,
        NULL,
        CLSCTX_INPROC_SERVER,
        IID_PPV_ARGS(&m_pAnimationTimer)
        );

    if (SUCCEEDED(hr))
    {
        // Create the transition library object

        hr = CoCreateInstance(
            CLSID_UIAnimationTransitionLibrary,
            NULL,
            CLSCTX_INPROC_SERVER,
            IID_PPV_ARGS(&m_pTransitionLibrary)
            );

        ...

    }

    ...

}

Обратите внимание на следующие определения из MainWindow.h.

class CMainWindow
{

    ...

private:

    // Animation components

    IUIAnimationManager *m_pAnimationManager;
    IUIAnimationTimer *m_pAnimationTimer;
    IUIAnimationTransitionLibrary *m_pTransitionLibrary;

    ...

};

Следующий шаг

После завершения этого шага необходимо выполнить следующий шаг: Создание переменных анимации.

CoCreateInstance

IUIAnimationManager

IUIAnimationTimer

IUIAnimationTransitionLibrary

Обзор анимации Windows