共用方式為


Windows Touch 筆勢概觀

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

手勢概觀

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

圖顯示 Windows 7 中 Windows 觸控支援的手勢

注意

當觸點彼此分開時,某些辨識器能更可靠地解讀多點觸控手勢。

舊版支援

針對舊版支援,默認手勢處理程式會將某些手勢對應至舊版 Windows 中使用的 Windows 訊息。 下表說明手勢如何映射到舊版訊息。

手勢 描述 已產生訊息
平移手勢對應於使用滑鼠滾輪。 WM_VSCROLL
WM_HSCROLL
按住 長按手勢對應到滑鼠的右鍵功能。 WM_RBUTTONDOWN
WM_RBUTTONUP
縮放 縮放手勢會觸發類似按住 CTRL 鍵的訊息,並旋轉滑鼠滾輪來捲動。 在 wParam 中設定 MK_CONTROLWM_MOUSEWHEEL

解譯 Windows Touch 手勢

應用程式開發人員可以藉由處理來自應用程式的 WndProc 函式 WM_GESTURE 訊息,來解譯 Windows Touch 手勢。 處理此訊息之後,您可以擷取描述筆勢的 GESTUREINFO 結構。 GESTUREINFO 結構會有各種取決於筆勢類型的資訊。

藉由將句柄傳遞至 GetGestureInfo 函式來獲取 GESTUREINFO 結構。

下列旗標表示手勢的各種狀態,並儲存在 dwFlags 中。

名字 價值 描述
GF_BEGIN 0x00000001 手勢正在開始。
GF_INERTIA 0x00000002 手勢已觸發慣性。
GF_END 0x00000004 手勢已完成。

注意

大部分的應用程式都應該忽略 GID_BEGINGID_END,並將其傳遞至 DefWindowProc。 默認手勢處理程式會使用這些訊息。 當第三方應用程式取用 GID_BEGINGID_END 訊息時,應用程式行為是未定義的。

下表指出手勢的各種標識碼。

名字 價值 描述
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 表示兩指之間的距離。 表示兩根手指之間的中心位置。
按壓並點擊 表示第一根手指和第二根手指之間的差距。 此值會儲存在 ullArguments 成員的下 32 位 POINT 結構中。 表示第一根手指落下的位置。

Windows 觸控手勢