Partager via


_IManipulationEvents ::ManipulationCompleted, méthode (manipulations.h)

Gère l’événement à la fin de la manipulation ou de l’inertie.

Syntaxe

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

Paramètres

[in] x

Coordonnée x d’origine dans les coordonnées définies par l’utilisateur.

[in] y

Coordonnée y d’origine dans les coordonnées définies par l’utilisateur.

[in] cumulativeTranslationX

Traduction totale de l’axe X depuis le début de la manipulation en coordonnées définies par l’utilisateur.

[in] cumulativeTranslationY

Traduction totale de l’axe y depuis le début de la manipulation en coordonnées définies par l’utilisateur.

[in] cumulativeScale

Changement d’échelle total depuis le début de la manipulation en pourcentage de la taille d’origine.

[in] cumulativeExpansion

Changement d’expansion total depuis le début de la manipulation dans les coordonnées définies par l’utilisateur.

[in] cumulativeRotation

Le changement total de rotation depuis le début de la manipulation dans les radians.

Valeur retournée

Si la méthode réussit, retourne S_OK. En cas d’échec, elle retourne un code d’erreur HRESULT.

Remarques

Les événements de manipulation sont générés pour les interfaces IInertiaProcessor et IManipulationProcessor . Si vous utilisez les valeurs de la structure TOUCHINPUT dans les appels à ProcessUp, les coordonnées sont exprimées en centièmes de pixel.

Note Lors de l’utilisation de l’inertie, les appels à IInertiaProcessor ::Complete peuvent forcer l’extrapolation de la manipulation actuelle, ce qui entraîne le passage de deltas importants à l’événement ManipulationCompleted. Pour résoudre ce problème, effectuez des mises à jour sur l’événement terminé en plus de l’événement delta.
 

Exemples

Le code suivant montre une implémentation de la méthode 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;
}
    
    

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête manipulations.h (include Manipulations.h)

Voir aussi

Ajout de la prise en charge de la manipulation au code non managé

Gestion de l’inertie dans le code non managé

Méthodes

_IManipulationEvents