_IManipulationEvents::ManipulationCompleted 方法 (manipulations.h)
處理操作或慣性完成時的事件。
語法
HRESULT ManipulationCompleted(
[in] FLOAT x,
[in] FLOAT y,
[in] FLOAT cumulativeTranslationX,
[in] FLOAT cumulativeTranslationY,
[in] FLOAT cumulativeScale,
[in] FLOAT cumulativeExpansion,
[in] FLOAT cumulativeRotation
);
參數
[in] x
用戶定義座標中的原點 X 座標。
[in] y
用戶定義座標中的原點 Y 座標。
[in] cumulativeTranslationX
自使用者定義座標中操作的開頭起,X 軸的總轉譯。
[in] cumulativeTranslationY
自使用者定義座標中操作的開頭起,y 軸的總轉譯。
[in] cumulativeScale
自操作開始起,以原始大小百分比表示的總小數字數變更。
[in] cumulativeExpansion
自使用者定義座標中操作的開頭起,總展開變更。
[in] cumulativeRotation
自操作開始以弧度為單位后的總旋轉變更。
傳回值
如果方法成功,它會傳回 S_OK。 如果失敗,則會傳回 HRESULT 錯誤碼。
備註
操作事件會針對 IInertiaProcessor 和 IManipulationProcessor 介面產生。 如果您在呼叫 ProcessUp 時使用 TOUCHINPUT 結構中的值,座標會以百分之一像素為單位。
注意 使用慣性時, 呼叫 IInertiaProcessor::Complete 可以強制推斷目前的操作,導致將大型差異傳遞至 ManipulationCompleted 事件。
若要解決此問題,除了差異事件之外,還會對已完成的事件執行更新。
範例
下列程式代碼顯示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;
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 7 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 R2 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | manipulations.h (包括 Manipulations.h) |