Поделиться через


WM_TOUCH сообщение

Уведомляет окно, когда одна или несколько точек касания, таких как палец или перо, касается сенсорной поверхности дигитайзера.

Параметры

wParam

Слово нижнего порядка содержит количество точек касания, связанных с этим сообщением. Слово высокого порядка зарезервировано для использования в будущем.

lParam

Содержит дескриптор сенсорного ввода, который можно использовать в вызове GetTouchInputInfo для получения подробных сведений о точках касания, связанных с этим сообщением.

Этот дескриптор действителен только в рамках текущего процесса и не должен передаваться между процессами, кроме как LPARAM в вызове SendMessage или PostMessage .

Если приложению больше не требуется этот дескриптор, приложение должно вызвать Метод 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