_IManipulationEvents::ManipulationDelta メソッド (manipulations.h)

操作されたオブジェクトが変更されたときに発生するイベントを処理します。

構文

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

パラメーター

[in] x

ユーザー定義座標の原点 x 座標。

[in] y

ユーザー定義座標の原点 y 座標。

[in] translationDeltaX

最後のイベント以降のユーザー定義座標の x 軸に関する変換の変更。

[in] translationDeltaY

最後のイベント以降のユーザー定義座標の y 軸に関する変換の変更。

[in] scaleDelta

前のイベント以降のスケールの変化は、前のスケールに対する割合です。

[in] expansionDelta

ユーザー定義座標での前のイベント以降の展開の変更。

[in] rotationDelta

回転は、ラジアン単位で前のイベント以降に変化します。

[in] cumulativeTranslationX

ユーザー定義座標での操作の開始以降の x 軸に関する平行移動。

[in] cumulativeTranslationY

ユーザー定義座標での操作の開始以降の y 軸に関する平行移動。

[in] cumulativeScale

操作の開始以降のスケールの変化は、元のサイズに対する割合として変化します。

[in] cumulativeExpansion

ユーザー定義座標での操作の開始以降の展開の変更。

[in] cumulativeRotation

ラジアン単位での操作の開始以降の回転の変化。

戻り値

メソッドが成功した場合は、S_OK を返します。 失敗した場合は、HRESULT エラー コードが返されます。

注釈

操作イベントは、 IInertiaProcessor インターフェイスと IManipulationProcessor インターフェイスの両方に対して生成されます。 ProcessMove の呼び出しで TOUCHINPUT 構造体の値を使用している場合、座標はピクセルの 100 分の 1 になります。

メモ 慣性を使用する場合、 IInertiaProcessor::Complete を呼び出すと、現在の操作が強制的に外挿され、大きな差分が ManipulationCompleted イベントに渡される可能性があります。 この問題に対処するには、デルタ イベントに加えて、完了したイベントに対して更新を実行します。
 

次のコードは、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;
}    
    

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー manipulations.h (Manipulations.h を含む)

こちらもご覧ください

アンマネージド コードへの操作のサポートの追加

アンマネージ コードでの慣性の処理

メソッド

_IManipulationEvents