2009年7月12日 星期日

Windows 7 Touch SDK - TOUCHINPUT Structure


本文章: MSDN-TOUCHINPUT Structure

TOUCHINPUT Structure

目的

觸控輸入的資料結構

語法

typedef struct _TOUCHINPUT {
LONG x;
LONG y;
HANDLE hSource;
DWORD dwID;
DWORD dwFlags;
DWORD dwMask;
DWORD dwTime;
ULONG_PTR dwExtraInfo;
DWORD cxContact;
DWORD cyContact;
} TOUCHINPUT, *PTOUCHINPUT;

成員

x
觸控點的x座標, 可以呼叫TOUCH_COORD_TO_PIXEL() 將觸控座標轉換成像素

y

觸控點的y座標, 可以呼叫TOUCH_COORD_TO_PIXEL() 將觸控座標轉換成像素

hSource
來源裝置的handle.

dwID
觸控點的ID

dwFlags
觸控點的flag; 用來標示觸控點被按壓, 釋放或移動. 類似操作滑鼠的行為

dwMask
一個可以修改的flag, 此flag可以判斷是否支援觸控點的面積.

dwTime
觸控事件的作用時間, 單位為毫秒.


dwExtraInfo
一個額外的數值和touch event有相關

cxContact
觸控點接觸面積的寬. 這個值僅有在dwMask TOUCHEVENTFMASK_CONTACTAREA時, 才有作用.

cyContact

觸控點接觸面積的高. 這個值僅有在dwMask TOUCHEVENTFMASK_CONTACTAREA時, 才有作用.

Remarks

下面的表格列出dwFlag的型態

FlagValueDescription
TOUCHEVENTF_MOVE0x0001
觸控點開始移動.

TOUCHEVENTF_DOWN0x0002
觸控點被建立, 例如手指或觸控筆按壓螢幕.

TOUCHEVENTF_UP0x0004觸控點被移除, 例如手指或觸控筆離開螢幕.
TOUCHEVENTF_INRANGE0x0008
一個觸控點在範圍內. 這個flag可以用來啟動touch hover(如果硬體有支援). 如果應用程式不想要hover可以忽略此flag

TOUCHEVENTF_NOCOALESCE0x0020
When received using GetTouchInputInfo, this input was not coalesced.

TOUCHEVENTF_PALM0x0080
觸控的事件來自於使用者的手掌

TOUCHEVENTF_PRIMARY0x0010標示出第一個(primary)觸控點.

Note 如果你的觸控裝置不支援hover; 當TOUCHEVENTF_UP flag被設定時,TOUCHEVENTF_INRANGE 會被清除. 如果觸控裝置有支援hover, TOUCHEVENTF_UP and TOUCHEVENTF_INRANGE會被獨自設定.

The following table lists the flags for the dwMask member.

FlagValueDescription
TOUCHINPUTMASKF_CONTACTAREA0x0004
有提供cxContactcyContact.

TOUCHINPUTMASKF_EXTRAINFO0x0002
有提供 dwExtraInfo


TOUCHINPUTMASKF_TIMEFROMSYSTEM

0x0001

系統的時間設定在 TOUCHINPUT 結構中.

沒有留言:

張貼留言