Método _IManipulationEvents::ManipulationDelta (manipulations.h)

Manipula eventos que ocorrem quando um objeto manipulado é alterado.

Sintaxe

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
);

Parâmetros

[in] x

A coordenada x de origem em coordenadas definidas pelo usuário.

[in] y

A coordenada y de origem em coordenadas definidas pelo usuário.

[in] translationDeltaX

A alteração de tradução sobre o eixo x em coordenadas definidas pelo usuário desde o último evento.

[in] translationDeltaY

A alteração de tradução sobre o eixo y em coordenadas definidas pelo usuário desde o último evento.

[in] scaleDelta

A alteração de escala desde o evento anterior como um percentual da escala anterior.

[in] expansionDelta

A alteração de expansão desde o evento anterior em coordenadas definidas pelo usuário.

[in] rotationDelta

A rotação é alterada desde o evento anterior em radianos.

[in] cumulativeTranslationX

A tradução sobre o eixo x desde o início da manipulação em coordenadas definidas pelo usuário.

[in] cumulativeTranslationY

A tradução sobre o eixo y desde o início da manipulação em coordenadas definidas pelo usuário.

[in] cumulativeScale

A escala é alterada desde o início da manipulação como uma porcentagem do tamanho original.

[in] cumulativeExpansion

A alteração de expansão desde o início da manipulação em coordenadas definidas pelo usuário.

[in] cumulativeRotation

A rotação muda desde o início da manipulação em radianos.

Retornar valor

Se o método for bem-sucedido, retornará S_OK. Se falhar, retornará um código de erro HRESULT.

Comentários

Os eventos de manipulação são gerados para as interfaces IInertiaProcessor e IManipulationProcessor . Se você estiver usando os valores da estrutura TOUCHINPUT em chamadas para ProcessMove, as coordenadas estarão em centésimos de pixel.

Nota Ao usar inércia, as chamadas para IInertiaProcessor::Complete podem forçar a manipulação atual a ser extrapolada, resultando em deltas grandes sendo passados para o evento ManipulationCompleted. Para resolver esse problema, execute atualizações no evento concluído, além do evento delta.
 

Exemplos

O código a seguir mostra uma implementação do método 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;
}    
    

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho manipulations.h (inclua Manipulations.h)

Confira também

Adicionando suporte de manipulação a código não gerenciado

Tratamento de inércia em código não gerenciado

Métodos

_IManipulationEvents