2013-05-14 87 views
0

過去幾天我一直在schoneered MSDN/Google,我一直無法找到這個問題的答案。Windows 8獲取絕對X Y觸摸屏的座標(不管窗口)

我正在尋找獲得觸摸屏設備上的觸摸/多點觸摸的XY座標的Windows 8供電。有關於如何將觸摸手柄添加到特定的窗口的噸指南,但我想創建一個依賴於觸摸輸入的應用程序,而不管哪個窗口/應用程序是焦點/被觸摸的應用程序。

基本上,我正在尋找最低級別的觸摸API。任何人有任何想法?謝謝!

+0

只需將觸摸消息座標從客戶端轉換爲屏幕座標即可。但有些東西你還沒有解釋:你打算如何捕獲其他窗口的觸摸事件? –

+0

這就是我的全部問題:)如果我想要一個窗口的屏幕座標,我會被設置!但我期望獲得觸摸輸入,即使窗口最小化! – YasharBahman

+0

在擔心如何轉換座標之前(ClientToScreen會照顧到這一點),您應該首先獲得輸入。這就像問你如何花錢,你沒有。 –

回答

1

簡單的方法是使用「傳統」(Windows 7)API。有了這個,你會收到一個WM_TOUCH消息的觸摸輸入。

您在調用GetTouchInputInfo時使用該消息的lParam。

返回TOUCHINPUT結構,其中的每一個包括一個xy座標(在什麼好像它可以是用於無用/虛幻精度的記錄,被給予的百分之一的精度的陣列一個像素)。

對於新的應用程序,Microsoft建議使用指針輸入API。有了這個,你會收到messages,如WM_POINTERDOWN,WM_POINTERUPWM_POINTERUPDATE。通過這些,消息的lParam包含輸入的單個x/y點。有關位置的更完整信息,請撥打GetPointerInfo以檢索POINTER_INFO結構中輸入的座標。

+0

我真的很感謝Jerry的快速回答!我試圖調查WM_TOUCH。我正在編寫一個應用程序,它可以獲得觸摸的x/y座標,即使它最小化。我可能是錯的(實際上我希望我是!),但是從它的外觀來看,WM_TOUCH消息只在觸摸發生在窗口本身時觸發。如果我錯了,那真棒!如果我是對的,那麼也許有辦法繞過窗戶? – YasharBahman