2009年7月8日 星期三

Windows 7 Touch SDK - WM_TOUCH, GetTouchInputInfo

WM_TOUCH Message

目的

通知視窗當有一個或多個觸控點(例如手指頭或觸控筆)作用在觸控螢幕上

參數

wParam
包含觸控點的數目

lParam
包含一個觸控輸入的handle, 可以呼叫GetTouchInputInfo來取得更詳細的資料.

注意: 當應用程式不再需要此handle時, 必須呼叫CloseTouchInputHandle去釋放這個handle的記憶體, 如果不這麼做的話, 可能會造成memory leak.

傳回值

如果此應用程式能處理此訊息,回傳為0. 如果不能處理此訊息, 必須呼叫 DefWindowProc. 不那麼作的話, 可能造成記憶體遺失(memory leak) , 因為touch input handle 沒被關掉.



GetTouchInputInfo Function

目的
取得觸控輸入的詳細資訊


語法


BOOL WINAPI GetTouchInputInfo(
__in HTOUCHINPUT hTouchInput,
__in UINT cInputs,
__out PTOUCHINPUT pInputs,
__in int cbSize
);

參數

hTouchInput [in]
傳入一個觸控輸入的handle(可以從觸控訊息的 LPARAM取得)


cInputs [in]

傳入觸控輸入資料結構的數目(可以從觸控訊息WPARAM取得); 此數目會等於觸控點的數目.

pInputs [out]

取得TOUCHINPUT的指標(TOUCHINPUT* ti)


cbSize [in]

一個TOUCHINPUT structure的大小, 可寫成sizeof(TOUCHINPUT)

傳回值

如果此函式可以取得參數, 回傳值不為0. 如果失敗, 則返回0

註解

使用CloseTouchInputHandle將不能釋放TOUCHINPUT指標的記憶體, 必須要自行delete此memory, 如下所示:

CloseTouchInputHandle((HTOUCHINPUT)lParam);
delete [] ti;

參考資料: MSDN - Windows Touch Input



沒有留言:

張貼留言