WM_TOUCH 메시지
손가락이나 펜과 같은 하나 이상의 터치 포인트가 터치 감지 디지타이저 표면에 닿으면 창에 알립니다.
매개 변수
-
wParam
-
낮은 순서의 단어에는 이 메시지와 연결된 터치 포인트 수가 포함됩니다. 상위 단어는 나중에 사용할 수 있도록 예약되어 있습니다.
-
lParam
-
이 메시지와 연결된 터치 포인트에 대한 자세한 정보를 검색하기 위해 GetTouchInputInfo 호출에 사용할 수 있는 터치 입력 핸들을 포함합니다.
이 핸들은 현재 프로세스 내에서만 유효하며 SendMessage 또는 PostMessage 호출의 LPARAM을 제외하고 교차 프로세스로 전달되어서는 안 됩니다.
애플리케이션에 이 핸들이 더 이상 필요하지 않은 경우 애플리케이션은 CloseTouchInputHandle 을 호출하여 이 핸들과 연결된 프로세스 메모리를 해제해야 합니다. 이렇게 하지 않으면 애플리케이션 메모리 누수로 인해 발생할 수 있습니다.
메시지가 DefWindowProc에 전달된 후에는 이 매개 변수의 터치 입력 핸들이 더 이상 유효하지 않습니다. DefWindowProc 이 이 핸들을 닫고 무효화합니다.
또한 PostMessage, SendMessage 또는 해당 변형 중 하나를 사용하여 메시지를 전달한 후에는 이 매개 변수의 터치 입력 핸들 이 더 이상 유효하지 않습니다. 이러한 함수는 이 핸들을 닫고 무효화합니다.
반환 값
애플리케이션이 이 메시지를 처리하면 0을 반환해야 합니다.
애플리케이션이 메시지를 처리하지 않는 경우 DefWindowProc을 호출해야 합니다. 이렇게 하지 않을 경우 터치 입력 핸들이 닫혀 있지 않고 연결된 프로세스 메모리가 해제되지 않으므로 애플리케이션이 메모리를 누수합니다.
설명
WM_TOUCH 메시지는 Windows의 HTTRANSPARENT 영역을 준수하지 않습니다. 창이 WM_NCHITTEST 메시지에 대한 응답으로 HTTRANSPARENT를 반환하면 마우스 메시지가 부모로 이동하고 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 [데스크톱 앱만 해당] |
헤더 |
|