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


Метод _IManipulationEvents::ManipulationDelta (manipulations.h)

Обрабатывает события, которые происходят при изменении объекта, с которыми осуществляется манипуляция.

Синтаксис

HRESULT ManipulationDelta(
  [in] FLOAT x,
  [in] FLOAT y,
  [in] FLOAT translationDeltaX,
  [in] FLOAT translationDeltaY,
  [in] FLOAT scaleDelta,
  [in] FLOAT expansionDelta,
  [in] FLOAT rotationDelta,
  [in] FLOAT cumulativeTranslationX,
  [in] FLOAT cumulativeTranslationY,
  [in] FLOAT cumulativeScale,
  [in] FLOAT cumulativeExpansion,
  [in] FLOAT cumulativeRotation
);

Параметры

[in] x

Координата источника x в определяемых пользователем координатах.

[in] y

Исходная координата по оси Y в определяемых пользователем координатах.

[in] translationDeltaX

Преобразование изменяется относительно оси X в определяемых пользователем координатах с момента последнего события.

[in] translationDeltaY

Преобразование изменяется относительно оси Y в определяемых пользователем координатах с момента последнего события.

[in] scaleDelta

Масштаб изменяется с момента предыдущего события в процентах от предыдущей шкалы.

[in] expansionDelta

Расширение изменяется с момента предыдущего события в определяемых пользователем координатах.

[in] rotationDelta

Поворот изменяется с момента предыдущего события в радианах.

[in] cumulativeTranslationX

Преобразование оси X с начала манипуляции в определяемых пользователем координатах.

[in] cumulativeTranslationY

Преобразование оси Y с начала манипуляции в определяемых пользователем координатах.

[in] cumulativeScale

Масштаб изменяется с начала манипуляции в процентах от исходного размера.

[in] cumulativeExpansion

Изменение расширения с момента начала манипуляции в определяемых пользователем координатах.

[in] cumulativeRotation

Изменение поворота с момента начала манипуляции в радианах.

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

Если метод завершается успешно, возвращает значение S_OK. В случае сбоя возвращается код ошибки HRESULT.

Комментарии

События манипуляции создаются для интерфейсов IInertiaProcessor и IManipulationProcessor . При использовании значений из структуры TOUCHINPUT в вызовах ProcessMove координаты будут находиться в сотых пикселях.

Примечание При использовании инерции вызовы IInertiaProcessor::Complete могут принудительно экстраполировать текущую манипуляцию, что приводит к передаче больших изменений в событие ManipulationCompleted. Чтобы устранить эту проблему, выполните обновления завершенного события в дополнение к событию delta.
 

Примеры

В следующем коде показана реализация метода ManipulationDelta.

HRESULT STDMETHODCALLTYPE CManipulationEventSink::ManipulationDelta( 
    /* [in] */ FLOAT x,
    /* [in] */ FLOAT y,
    /* [in] */ FLOAT translationDeltaX,
    /* [in] */ FLOAT translationDeltaY,
    /* [in] */ FLOAT scaleDelta,
    /* [in] */ FLOAT expansionDelta,
    /* [in] */ FLOAT rotationDelta,
    /* [in] */ FLOAT cumulativeTranslationX,
    /* [in] */ FLOAT cumulativeTranslationY,
    /* [in] */ FLOAT cumulativeScale,
    /* [in] */ FLOAT cumulativeExpansion,
    /* [in] */ FLOAT cumulativeRotation)
{
    m_cDeltaEventCount ++;

    // Place your code handler here to do any operations based on the manipulation.

    return S_OK;
}    
    

Требования

Требование Значение
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header manipulations.h (включая Manipulations.h)

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

Добавление поддержки манипуляций в неуправляемый код

Обработка инерции в неуправляемом коде

Методы

_IManipulationEvents