WM_TOUCH消息
当一个或多个触摸点(如手指或笔)触摸触摸敏感数字化器表面时,通知窗口。
参数
-
wParam
-
低序字包含与此消息关联的接触点数。 高序字保留供将来使用。
-
lParam
-
包含一个触摸输入句柄,该句柄可用于调用 GetTouchInputInfo 以检索有关与此消息关联的触摸点的详细信息。
此句柄仅在当前进程中有效,不应作为 SendMessage 或 PostMessage 调用中的 LPARAM 跨进程传递。
当应用程序不再需要此句柄时,应用程序必须调用 CloseTouchInputHandle 以释放与此句柄关联的进程内存。 否则可能会导致应用程序内存泄漏。
请注意,将消息传递到 DefWindowProc 后,此参数中的触摸输入句柄不再有效。 DefWindowProc 将关闭此句柄并失效。
另请注意,在使用 PostMessage、SendMessage 或其变体之一转发消息后,此参数中的触摸输入句柄不再有效。 这些函数将关闭此句柄并失效。
返回值
如果应用程序处理此消息,则它应返回零。
如果应用程序不处理消息,则必须调用 DefWindowProc。 否则会导致应用程序泄漏内存,因为触摸输入句柄未关闭且未释放关联的进程内存。
备注
WM_TOUCH 消息不遵循窗口的 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 [仅限桌面应用] |
标头 |
|