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


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

Обрабатывает событие при завершении манипуляции или инерции.

Синтаксис

HRESULT ManipulationCompleted(
  [in] FLOAT x,
  [in] FLOAT y,
  [in] FLOAT cumulativeTranslationX,
  [in] FLOAT cumulativeTranslationY,
  [in] FLOAT cumulativeScale,
  [in] FLOAT cumulativeExpansion,
  [in] FLOAT cumulativeRotation
);

Параметры

[in] x

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

[in] y

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

[in] cumulativeTranslationX

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

[in] cumulativeTranslationY

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

[in] cumulativeScale

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

[in] cumulativeExpansion

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

[in] cumulativeRotation

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

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

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

Комментарии

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

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

Примеры

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




HRESULT STDMETHODCALLTYPE CManipulationEventSink::ManipulationCompleted( 
    /* [in] */ FLOAT x,
    /* [in] */ FLOAT y,
    /* [in] */ FLOAT cumulativeTranslationX,
    /* [in] */ FLOAT cumulativeTranslationY,
    /* [in] */ FLOAT cumulativeScale,
    /* [in] */ FLOAT cumulativeExpansion,
    /* [in] */ FLOAT cumulativeRotation)
{
    m_cCompletedEventCount ++;

    m_fX = x;
    m_fY = y;
    m_fCumulativeTranslationX = cumulativeTranslationX;
    m_fCumulativeTranslationY = cumulativeTranslationY;
    m_fCumulativeScale = cumulativeScale;
    m_fCumulativeExpansion = cumulativeExpansion;
    m_fCumulativeRotation = cumulativeRotation;

    // 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