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 [только классические приложения] |
Заголовок |
|