2009年7月17日 星期五

Windows 7 Touch SDK - WM_GESTURE Message


本文章出自: MSDN- WM_GESTURE Message

WM_GESTURE Message

目的

傳送手勢訊息

參數

wParam


lParam
提供手勢資訊的handle, 可以利用GetGestureInfo 函式來取得相關的資料(包含手勢的類型, 參數, 作用點...等)

回傳值

如果程式可以處理WM_GESTURE的訊息, 回傳值為0.

假使程式不能處理此訊息, 你必須呼叫 DefWindowProc來處理系統內定的訊息. 如果不那麼作的話, 可能會導致記憶體遺漏(Memory Leak), 因為touch unout handle將沒有被關掉, 因此Process中開啟的touch input handle記憶體也沒被釋放.


Remarks

下面表格列出Window Touch SDK支援的手勢:

Gesture IDValue (dwID)Description
GID_BEGIN1
一個手勢開始發生

GID_END2
一個手勢結束

GID_ZOOM3

放大, 縮小或縮放動作開始. 第一個GID_ZOOM訊息表示ZOOM開始, 但是還不會造成任何ZOOM的動作, 當程式收到第二個GID_ZOOM訊息時, 才會去觸發(trigger) ZOOM.

GID_PAN4
平移或平移動作開始. 第一個GID_PAN訊息表示PAN開始, 但是還不會造成任何PAN的動作, 當程式收到第二個GID_PAN訊息時, 才會去觸發PAN.

GID_ROTATE5

旋轉或旋轉動作開始. 第一個GID_ROTATE訊息表示ROTATE開始, 但是還不會造成任何ROTATE的動作, 當程式收到第二個GID_ROTATE訊息時, 才會去trigger ROTATE.


GID_TWOFINGERTAP6
兩手指敲碰(tap)觸控螢幕

GID_PRESSANDTAP7第一根手指按壓(press)在觸控螢幕上, 另一根手指作tap


下面的表格標示出手勢的參數(gesture arguments)

Gesture IDGestureullArgumentptsLocation
GID_ZOOMZoom In/Out兩個觸控點之間的距離

兩個觸控點的中心

GID_PANPan兩個觸控點之間的距離

Pan手勢目前的作用點



GID_ROTATERotate (pivot)
假如GF_BEGIN的旗標被設定, ullArgument表示旋轉角度(初始的角度為絕對角度), 如果為其他旗標 , ullArgument表示相對的角度(目前的角度 - 初始角度), 其角度的值會有正負號, 代表的式旋轉方向你可以使用GID_ROTATE_ANGLE_FROM_ARGUMENTGID_ROTATE_ANGLE_TO_ARGUMENT 來取得角度的值

為旋轉中心點(即固定不動的點)


GID_TWOFINGERTAP
Two-finger Tap
兩個觸控點之間的距離
兩根手指之間的中心點.

GID_PRESS_AND_TAP
Press and Tap
兩根手指之間的距離第一根手指按壓在觸控螢幕上的接觸點

沒有留言:

張貼留言