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 [仅限桌面应用]
标头
Winuser.h (包括 Windows.h)

请参阅

消息

操作和惯性编程指南

Windows 触控输入编程指南