Создание основных объектов анимации
Чтобы использовать анимацию Windows в приложении, первым шагом является создание небольшого набора основных объектов анимации.
Обзор
Используйте функцию CoCreateInstance для создания диспетчера анимации, таймера анимации и объектов библиотеки перехода.
Эти объекты потребуются для создания и отображения анимаций, поэтому они обычно не должны быть освобождены до завершения работы приложения. Если нет шансов, что любые зарегистрированные обратные вызовы могли бы создать эталонный цикл, освобождение объектов достаточно для правильной очистки. В противном случае приложение может освободить ресурсы, очищая обратные вызовы (передавая NULL вместо каждого) или вызывая метод завершения работы диспетчера анимации.
Пример кода
Следующий пример кода взят из 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;
...
};
Следующий шаг
После выполнения этого шага следующий шаг: создать переменные анимации.
Связанные разделы