Windows Touch 手勢概觀
本節說明 Windows Touch 支援的各種手勢。
手勢概觀
Windows Touch 可啟用數個支援單一和多個連絡人的手勢。 下圖說明 Windows 7 中支援的各種手勢。
注意
當連絡人彼此分開時,某些辨識器在解譯具有多個連絡人的手勢時更可靠。
舊版支援
針對舊版支援,預設手勢處理常式會將某些手勢對應至舊版 Windows 中使用的 Windows 訊息。 下表概述手勢如何對應至舊版訊息。
手勢 | 描述 | 訊息 (產生) |
---|---|---|
移動瀏覽 | 移動流覽手勢會對應至使用滾動輪。 |
WM_VSCROLL WM_HSCROLL |
按住 | 按住手勢會對應至滑鼠右鍵。 |
WM_RBUTTONDOWN WM_RBUTTONUP |
縮放 | 縮放手勢會觸發類似按住 CTRL 鍵的訊息,並旋轉滑鼠滾輪以捲動。 | 在wParam中設定MK_CONTROL WM_MOUSEWHEEL |
解譯 Windows Touch 手勢
應用程式開發人員可以從應用程式的 WndProc 函式處理 WM_GESTURE 訊息,藉此解譯 Windows Touch 手勢。 處理此訊息之後,您可以擷取描述手勢的 GESTUREINFO 結構。 GESTUREINFO結構會有依手勢類型而定的各種資訊。
將控制碼傳遞至手勢資訊結構至GetGestureInfo函式,即可擷取GESTUREINFO結構。
下列旗標表示手勢的各種狀態,並儲存在 dwFlags 中。
名稱 | 值 | Description |
---|---|---|
GF_BEGIN | 0x00000001 | 手勢正在啟動。 |
GF_INERTIA | 0x00000002 | 手勢已觸發慣性。 |
GF_END | 0x00000004 | 手勢已完成。 |
注意
大部分的應用程式都應該忽略 GID_BEGIN 和 GID_END ,並將其傳遞至 DefWindowProc。 預設手勢處理常式會使用這些訊息。 當協力廠商應用程式取用 GID_BEGIN 和 GID_END 訊息時,應用程式行為是未定義的。
下表指出手勢的各種識別碼。
名稱 | 值 | Description |
---|---|---|
GID_BEGIN | 1 | 手勢正在啟動。 |
GID_END | 2 | 手勢即將結束。 |
GID_ZOOM | 3 | 縮放手勢。 |
GID_PAN | 4 | 移動流覽手勢。 |
GID_ROTATE | 5 | 旋轉手勢。 |
GID_TWOFINGERTAP | 6 | 雙指點選手勢。 |
GID_PRESSANDTAP | 7 | 按下並點選手勢。 |
注意
GID_PAN手勢具有內建慣性。 在移動流覽手勢結束時,作業系統會建立額外的移動流覽手勢訊息。
GESTUREINFO結構成員ptsLocation和ullArguments會使用POINTS結構) 指定點 (,以及根據手勢的其他手勢資訊。 下表列出與每種手勢類型相關聯的值。
筆勢識別碼 | ullArguments | ptsLocation |
---|---|---|
GID_ZOOM | 表示兩點之間的距離。 | 表示縮放的中心。 |
GID_PAN | 表示兩點之間的距離。 | 表示移動流覽的目前位置。 |
GID_ROTATE | 指出如果已設定 GF_BEGIN 旗標,則為旋轉角度。 否則,這是自旋轉開始後的角度變更。 這是帶正負號的,表示旋轉的方向。 使用 GID_ROTATE_ANGLE_FROM_ARGUMENT 和 GID_ROTATE_ANGLE_TO_ARGUMENT 宏來取得和設定角度值。 | 這表示旋轉的中心,這是目標物件繞著旋轉的固定點。 |
GID_TWOFINGERTAP | 表示兩指之間的距離。 | 表示兩指的中心。 |
GID_PRESSANDTAP | 表示第一指和第二指之間的差異。 此值會儲存在ullArguments成員較低 32 位的POINT結構中。 | 指出第一個手指下拉的位置。 |