Partager via


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

Gère les événements qui se produisent lorsqu’un objet manipulé change.

Syntaxe

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

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] translationDeltaX

Changement de traduction concernant l’axe X dans les coordonnées définies par l’utilisateur depuis le dernier événement.

[in] translationDeltaY

Modification de la traduction de l’axe y dans les coordonnées définies par l’utilisateur depuis le dernier événement.

[in] scaleDelta

L’échelle change depuis l’événement précédent en pourcentage de l’échelle précédente.

[in] expansionDelta

L’expansion a changé depuis l’événement précédent dans les coordonnées définies par l’utilisateur.

[in] rotationDelta

Changement de rotation depuis l’événement précédent en radians.

[in] cumulativeTranslationX

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

[in] cumulativeTranslationY

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

[in] cumulativeScale

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

[in] cumulativeExpansion

L’expansion a changé depuis le début de la manipulation dans les coordonnées définies par l’utilisateur.

[in] cumulativeRotation

Le changement 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 à ProcessMove, 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 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;
}    
    

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