Sean's Note: 利用 WM_GESTURE 寫出有 Touch 功能的程式

2012年10月31日 星期三

利用 WM_GESTURE 寫出有 Touch 功能的程式

如果只想做出簡單的 PAN 功能,可透過接收 WM_TABLET_FLICK 訊息來達成,

其提供了八個方向,但在 Win8 上好像收不到這個訊息。

另外的替代方案是,在 Win7 以上的作業系統,我們可以透過接受 WM_GESTURE 來實作。

在使用前先透過 WM_GESTURENOTIFY 和 SetGestureConfig() 設定我們要或不要接收

哪些手勢。假如設定好只接受 PAN 的手勢後,即可在 WM_GESTURE 用 GetGestureInfo()

攔到 GESTUREINFO.dwID = GID_PAN 的資訊。

另外由 GESTUREINFO.dwFlags = GF_BEGIN/GF_INERTIA/GF_END 來分析起始點、慣性點和

終點。要注意的是,除非有明確的 PAN 動作(手指離開時的點需停留得夠久),否則

GF_BEGIN/GF_END 並不會成對出現,而會出現 GF_INERTIA 的慣性點。

GF_INERTIA 是用來實作像是拖曳卷軸時手已經放開的滑動效果。

沒有留言:

張貼留言