Windows 7下多點觸控API

2021-07-02 15:12:23 字數 1127 閱讀 9309

雙指觸控的核心是把原始觸控資料放入運動模型中去計算,以識別出使用者的手勢。原始觸控資料可以從wm_touch訊息中得到。通過wm_touch識別出縮放和平移手勢。 

第一步:檢查多點觸控硬體 

這裡使用getsystemmetrics api來獲取硬體是不是就緒: 

byte digitizerstatus = (byte)getsystemmetrics(sm_digitizer); 

if ((digitizerstatus & (0x80 + 0x40)) == 0) 

//檢查裝置支援幾個觸控點,需要注意的是目前win 7對2個觸控點支援得比較好 

byte ninputs = (byte)getsystemmetrics(sm_maximumtouches)

第二步:切換到原始觸控訊息 

在預設情況下,win 7預設提供 wm_gesture(手勢)訊息。這個手勢是系統根據原始觸控資料來識別的手勢,使用 registertouchwindow api函式可讓系統返回wm_touch原始觸控輸入訊息,核心**: 

registertouchwindow(hwnd, 0)) //hwnd為當前視窗的控制代碼。 

第三步:得到原始觸控資料 

使用gettouchinputinfo api得到原始觸控資料,核心**: 

gettouchinputinfo((htouchinput)lparam,numinputs,ti,sizeof(touchinput))) 

numinputs為預先宣告的變數,用於儲存有幾個觸控點,如果是5個手指同時在螢幕滑動,那麼numinputs就為5。 

ti是touchinput結構,其包含了觸點的x和y座標、發生時間、觸控型別(類似於滑鼠按下、滑鼠移動、滑鼠釋放等)。 

for(unsigned int i=0; i} 這裡的觸點按下、移動、釋放等函式,實際上是乙個運動**模型,我們在模型中,要將觸點的軌跡生成若干條運動曲線,並計算出每個點的方位角、速率、法向加速度、切向加速度等,以識別出具體的手勢。 

小知識:讓程式支援多點觸控最簡單的方法是用win 7的手勢識別功能,主要用到以下api:

getsystemmetrics,用於檢查多點觸控硬體裝置是否存在並就緒。 

getgestureinfo,用於獲取手勢型別及相關資料。

相容Windows7的多點觸控顯示器即將面世

自從蘋果推出了多點觸控技術,這種可以靈活運用手指的觸控技術已經儼然成為業界的新寵,不僅越來越多的智慧型手機 筆記本觸控板支援這個技術,就是微軟的下一代作業系統windows7也早早宣布要支援多點觸控技術。有馬當然也要有鞍,現在albatron已經宣布將在今年5月份推出相容windows7的多點觸控技...

windows7 下使用閃電記事

在windows7 下使用閃電記事感受 前段時間發現自己平時做得筆記和收藏的網頁,都是乙個個的單獨的檔案,查詢管理起來很麻煩,所以就想找個做筆記的輔助軟體來用,在網上找了很多,因為我的作業系統是windows7 有很多軟體不相容用起來很麻煩,介面也不是很友好,最後發現閃電記事個人感覺很不錯,下面是自...

windows 7下memcached的安裝與使用

二 安裝步驟 1 解壓到指定目錄,如 d software wampserver wamp memcached 2 在win7下以管理員身份開啟cmd命令視窗,轉到解壓的目錄,輸入 memcached.exe d install 3 開啟任務管理器,開啟服務,可以看到memcached已經在上面可,...