WM_TOUCH訊息
當一或多個觸控點,例如手指或手寫筆,觸碰觸控式數位板表面時,通知視窗。
參數
-
wParam
-
低序字組包含與此訊息相關聯的觸控點數目。 高序字會保留供日後使用。
-
lParam
-
包含觸控輸入控制碼,可用於 呼叫 GetTouchInputInfo 以擷取與此訊息相關聯之觸控點的詳細資訊。
此控制碼只有在目前的進程內有效,而且不應該在SendMessage或PostMessage呼叫中傳遞LPARAM以外的跨進程。
當應用程式不再需要此控制碼時,應用程式必須呼叫 CloseTouchInputHandle 以釋放與此控制碼相關聯的進程記憶體。 若無法這麼做,可能會導致應用程式記憶體流失。
請注意,此參數中的觸控輸入控制碼在訊息傳遞至 DefWindowProc之後不再有效。 DefWindowProc 將會關閉並使這個控制碼失效。
另請注意,此參數中的觸控輸入控制碼在使用 PostMessage、 SendMessage或其中一個變體轉送訊息之後不再有效。 這些函式將會關閉並使這個控制碼失效。
傳回值
如果應用程式處理此訊息,它應該會傳回零。
如果應用程式未處理訊息,則必須呼叫 DefWindowProc。 不這麼做會導致應用程式流失記憶體,因為觸控輸入控制碼未關閉,而且不會釋放相關聯的進程記憶體。
備註
WM_TOUCH 訊息不符合 WINDOWS 的 HTTRANSPARENT 區域。 如果視窗傳回 HTTRANSPARENT 以回應 WM_NCHITTEST 訊息,滑鼠訊息會移至父代, WM_TOUCH 訊息直接移至視窗。
範例
下列程式碼範例說明如何取得與此訊息相關聯的詳細觸控輸入資訊。
UINT cInputs = LOWORD(wParam);
PTOUCHINPUT pInputs = new TOUCHINPUT[cInputs];
if (NULL != pInputs)
{
if (GetTouchInputInfo((HTOUCHINPUT)lParam,
cInputs,
pInputs,
sizeof(TOUCHINPUT)))
{
// process pInputs
if (!CloseTouchInputHandle((HTOUCHINPUT)lParam))
{
// error handling
}
}
else
{
// GetLastError() and error handling
}
delete [] pInputs;
}
else
{
// error handling, presumably out of memory
}
return DefWindowProc(hWnd, message, wParam, lParam);
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 7 [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2008 R2 [僅限桌面應用程式] |
標頭 |
|