Compartilhar via


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

Manipula o evento quando a manipulação ou inércia é concluída.

Sintaxe

HRESULT ManipulationCompleted(
  [in] FLOAT x,
  [in] FLOAT y,
  [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] cumulativeTranslationX

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

[in] cumulativeTranslationY

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

[in] cumulativeScale

A alteração de escala total desde o início da manipulação como uma porcentagem do tamanho original.

[in] cumulativeExpansion

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

[in] cumulativeRotation

A mudança de rotação total 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 ProcessUp, 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 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;
}
    
    

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