Windows Touch 手勢概觀

本節說明 Windows Touch 支援的各種手勢。

手勢概觀

Windows Touch 可啟用數個支援單一和多個連絡人的手勢。 下圖說明 Windows 7 中支援的各種手勢。

此圖顯示 Windows 觸控在 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_BEGINGID_END ,並將其傳遞至 DefWindowProc。 預設手勢處理常式會使用這些訊息。 當協力廠商應用程式取用 GID_BEGINGID_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結構成員ptsLocationullArguments會使用POINTS結構) 指定點 (,以及根據手勢的其他手勢資訊。 下表列出與每種手勢類型相關聯的值。

筆勢識別碼 ullArguments ptsLocation
GID_ZOOM 表示兩點之間的距離。 表示縮放的中心。
GID_PAN 表示兩點之間的距離。 表示移動流覽的目前位置。
GID_ROTATE 指出如果已設定 GF_BEGIN 旗標,則為旋轉角度。 否則,這是自旋轉開始後的角度變更。 這是帶正負號的,表示旋轉的方向。 使用 GID_ROTATE_ANGLE_FROM_ARGUMENTGID_ROTATE_ANGLE_TO_ARGUMENT 宏來取得和設定角度值。 這表示旋轉的中心,這是目標物件繞著旋轉的固定點。
GID_TWOFINGERTAP 表示兩指之間的距離。 表示兩指的中心。
GID_PRESSANDTAP 表示第一指和第二指之間的差異。 此值會儲存在ullArguments成員較低 32 位的POINT結構中。 指出第一個手指下拉的位置。

Windows Touch 手勢