_IManipulationEvents::ManipulationCompleted-Methode (manipulations.h)

Behandelt das Ereignis, wenn die Bearbeitung oder Die Unträgheit abgeschlossen ist.

Syntax

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

Parameter

[in] x

Die x-Ursprungskoordinate in benutzerdefinierten Koordinaten.

[in] y

Die Ursprungs-y-Koordinate in benutzerdefinierten Koordinaten.

[in] cumulativeTranslationX

Die Gesamtübersetzung der x-Achse seit Beginn der Bearbeitung in benutzerdefinierten Koordinaten.

[in] cumulativeTranslationY

Die Gesamtübersetzung über die y-Achse seit Beginn der Bearbeitung in benutzerdefinierten Koordinaten.

[in] cumulativeScale

Die Gesamtskalierungsänderung seit Beginn der Bearbeitung als Prozentsatz der ursprünglichen Größe.

[in] cumulativeExpansion

Die Gesamtänderung der Erweiterung seit Beginn der Bearbeitung in benutzerdefinierten Koordinaten.

[in] cumulativeRotation

Die Gesamtdrehungsänderung seit Beginn der Manipulation im Bogenmaß.

Rückgabewert

Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Wenn ein Fehler auftritt, wird ein HRESULT-Fehlercode zurückgegeben.

Hinweise

Manipulationsereignisse werden sowohl für die IInertiaProcessor- als auch für die IManipulationProcessor-Schnittstelle generiert. Wenn Sie die Werte aus der TOUCHINPUT-Struktur in Aufrufen von ProcessUp verwenden, liegen die Koordinaten in Hundertsteln eines Pixels.

Hinweis Bei Verwendung von Inertia können Aufrufe von IInertiaProcessor::Complete erzwingen, dass die aktuelle Bearbeitung extrapoliert wird, was dazu führt, dass große Deltas an das ManipulationCompleted-Ereignis übergeben werden. Um dieses Problem zu beheben, führen Sie zusätzlich zum Deltaereignis Updates für das abgeschlossene Ereignis aus.
 

Beispiele

Der folgende Code zeigt eine Implementierung der ManipulationCompleted-Methode.




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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile manipulations.h (include Manipulations.h)

Weitere Informationen

Hinzufügen von Manipulationsunterstützung zu nicht verwaltetem Code

Behandeln von Unträgheit in nicht verwaltetem Code

Methoden

_IManipulationEvents