Freigeben über


WM_TOUCH Nachricht

Benachrichtigt das Fenster, wenn ein oder mehrere Berührungspunkte, z. B. ein Finger oder Stift, eine berührungsempfindliche Digitalisieroberfläche berührt.

Parameter

wParam

Das Wort mit niedriger Reihenfolge enthält die Anzahl der Berührungspunkte, die dieser Nachricht zugeordnet sind. Das hochgeordnete Wort ist für die zukünftige Verwendung reserviert.

lParam

Enthält ein Toucheingabehandle, das in einem Aufruf von GetTouchInputInfo verwendet werden kann, um detaillierte Informationen zu den Berührungspunkten abzurufen, die dieser Nachricht zugeordnet sind.

Dieses Handle ist nur innerhalb des aktuellen Prozesses gültig und sollte nicht prozessübergreifend übergeben werden, außer als LPARAM in einem SendMessage - oder PostMessage-Aufruf .

Wenn die Anwendung dieses Handle nicht mehr benötigt, muss die Anwendung CloseTouchInputHandle aufrufen, um den diesem Handle zugeordneten Prozessspeicher freizugeben. Andernfalls kann dies zu einem Speicherverlust der Anwendung führen.

Beachten Sie, dass das Toucheingabehandle in diesem Parameter nicht mehr gültig ist, nachdem die Nachricht an DefWindowProc übergeben wurde. DefWindowProc schließt und ungültig.

Beachten Sie auch, dass das Toucheingabehandle in diesem Parameter nicht mehr gültig ist, nachdem die Nachricht mit PostMessage, SendMessage oder einer ihrer Varianten weitergeleitet wurde. Diese Funktionen schließen und ungültigieren diesen Handle.

Rückgabewert

Wenn eine Anwendung diese Nachricht verarbeitet, sollte sie null zurückgeben.

Wenn die Anwendung die Nachricht nicht verarbeitet, muss sie DefWindowProc aufrufen. Dies führt dazu, dass die Anwendung Arbeitsspeicher verloren geht, da das Toucheingabehandle nicht geschlossen ist und der zugeordnete Prozessspeicher nicht freigegeben wird.

Bemerkungen

WM_TOUCH Nachrichten berücksichtigen HTTRANSPARENT-Fensterbereiche nicht. Wenn ein Fenster HTTRANSPARENT als Reaktion auf eine WM_NCHITTEST Nachricht zurückgibt, werden Mausnachrichten an das übergeordnete Element weitergeleitet, und WM_TOUCH Nachrichten direkt in das Fenster gelangen.

Beispiele

Der folgende Code ist ein Beispiel für das Abrufen detaillierter Toucheingabeinformationen, die dieser Nachricht zugeordnet sind.

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);

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2008 R2 [nur Desktop-Apps]
Header
Winuser.h (einschließlich Windows.h)

Weitere Informationen

Meldungen

Programmierhandbuch für Manipulationen und Inertia

Programmierhandbuch für Windows-Toucheingaben