共用方式為


選擇正確的 Windows Touch 方法

本節說明您可以使用的不同 Windows Touch 方法。

您可以透過許多方式使用 Windows Touch 功能來增強應用程式。 在採用方法之前,您應該先考慮要使用應用程式執行的動作。 下列案例適用於 Windows Touch:

  • 您希望應用程式的行為與舊版 Windows 相同,但希望 Windows Touch 訊息以一致的方式運作。
  • 您想要在應用程式中自訂物件旋轉、翻譯、移動瀏覽或縮放支援。
  • 您想要讓應用程式對 Windows Touch 手勢有細微的解譯,或在專為 Windows Touch 輸入優化的應用程式中解譯多個觸控。
  • 您有一個應用程式使用 RealTimeStylus 物件,而且想要使用 Windows Touch 功能來增強它。

您希望應用程式在舊版 Windows 中運作的方式

在 Windows 7 中,應用程式預設會產生啟用 Windows Touch 功能的訊息。 例如,平移手勢會觸發WM_*SCROLL 訊息。 除了平移支援之外,Windows 7 中的預設WM_GESTURE處理程式也支援界限回饋、縮放和按下和點選。 界限意見反應也會透過舊版支援來啟用。 如需手勢如何對應至訊息的詳細資訊,請參閱 Windows Touch 筆勢概觀。 只想要此基本功能的開發人員不需要直接使用 Windows Touch API。

注意

自定義滾動條處理程式必須支援WM_VSCROLL訊息的SM_THUMBPOSITION要求,而且必須支援WM_HSCROLL訊息的SB_LINELEFT要求和SB_LINERIGHT要求

  • 使用 滾動條 進行移動流覽的舊版支援一節說明如何確保您的應用程式在 Windows 7 中如使用者預期般運作。

您想要自訂物件旋轉、翻譯、移動瀏覽或縮放支援

如果您想要對觸控的支援有限,但 Windows 7 提供的預設行為不適合您的應用程式,您可以使用手勢來增強應用程式。 藉由使用手勢,您可以處理 WM_GESTURE 訊息來解譯手勢命令。 如需手勢的詳細資訊,請參閱 Windows Touch 手勢一。 如果您的應用程式只需要支援高粒度旋轉、改善的縮放支援或單指移動流覽,手勢是 Windows Touch 開發的最佳方法。 除了解譯手勢訊息之外,您還可以選擇支援界限意見反應。 如需界限意見反應的詳細資訊,請參閱 Windows Touch 程式設計參考的界限意見反應一節。 在 Windows 7 中,命令提示字元和 Internet Explorer 會利用界限意見反應和手勢。

您想要精細的手勢解譯或多個觸控點的自定義處理

如果您想要擁有比WM_GESTURE訊息所提供的更明確的手勢控制,或想要在多個物件上解譯多個手勢,您應該使用操作處理器。 操作處理器基本上是手勢的超集。 使用操作處理器時,您必須實作事件接收,以用於將原始觸控數據饋送至的操作。

除了解譯手勢之外,如果您想要簡單的物件物理,您應該搭配操作處理器使用慣性處理器。 慣性處理器會在操作完成時從操作處理器取得速度值,以與操作處理器搭配運作。

如果您想要在應用程式中解譯多個觸控點,您應該為 WM_TOUCH 訊息建立訊息處理程式。

重要

Windows 11 和更新版本

根據預設,某些三指和四指觸控互動將無法在 Windows 應用程式中運作。

根據預設,系統現在會針對切換或最小化視窗和變更虛擬桌面等作業使用三指和四指觸控互動。 由於這些互動現在會在系統層級處理,因此您的應用程式功能可能會受到這項變更的影響。

為了支援應用程式內的三指或四指互動,引進了新的使用者設定,指定系統是否處理這些互動:

藍牙和裝置>觸控 > 「三指和四指觸控手勢”

當設定為 [開啟] 時,系統會處理所有三指和四指互動(應用程式將無法支持它們)。

當設定為 「關閉」時,應用程式可以支援三指和四指互動(系統不會處理它們)。

如果您的應用程式必須支持這些互動,建議您通知使用者此設定,並提供連結,以啟動 設定 應用程式到相關頁面(ms-settings:devices-touch)。 如需詳細資訊,請參閱 Launcher.LaunchUriAsync 方法

您想要對使用 RealTimeStylus 的應用程式啟用 Windows Touch 輸入

如果您想要在平板電腦平臺上啟用多個聯繫人的輸入,您必須實作可解譯 Windows Touch 數據的自定義 RealTimeStylus 外掛程式。 Microsoft 引進了 ITablet3IRealTimeStylus3 介面,以啟用 RealTimeStylus 外掛程式中多個聯繫人的輸入。 這些介面可簡化擴充 RealTimeStylus 外掛程式以支援多個連絡點。

若要檢查是否已啟用多個聯繫人的支援,請呼叫IsMultiTouch 若要檢查支持的聯繫人數目,請呼叫 GetMaximumCursors 若要啟用或停用多個聯繫人支援,請呼叫 MultiTouchEnabled

注意

如果您未在 RealTimeStylus 中啟用多個連絡點,您會收到平移和縮放等手勢訊息。

程式設計指南