WM _ NCHITTEST-Nachricht

Wird an ein Fenster gesendet, um zu bestimmen, welcher Teil des Fensters einer bestimmten Bildschirmkoordinate entspricht. Dies kann z. B. auftreten, wenn der Cursor bewegt wird, wenn eine Maustaste gedrückt oder losgelassen wird oder als Reaktion auf einen Aufruf einer Funktion wie WindowFromPoint. Wenn die Maus nicht erfasst wird, wird die Nachricht an das Fenster unterhalb des Cursors gesendet. Andernfalls wird die Nachricht an das Fenster gesendet, das die Maus erfasst hat.

Ein Fenster empfängt diese Meldung über seine WindowProc-Funktion.

#define WM_NCHITTEST                    0x0084

Parameter

wParam

Dieser Parameter wird nicht verwendet.

lParam

Das Wort mit niedriger Reihenfolge gibt die x-Koordinate des Cursors an. Die Koordinate ist relativ zur oberen linken Ecke des Bildschirms.

Das Wort in hoher Reihenfolge gibt die y-Koordinate des Cursors an. Die Koordinate ist relativ zur oberen linken Ecke des Bildschirms.

Rückgabewert

Der Rückgabewert der DefWindowProc-Funktion ist einer der folgenden Werte, der die Position des Cursor-Hotspots angibt.

Rückgabecode/-wert BESCHREIBUNG
HTBORDER
18
Im Rahmen eines Fensters, das keinen Größenrahmen besitzt.
HTBOTTOM
15
Im unteren horizontalen Rahmen eines Fensters, in dem die Größe geändert werden kann (der Benutzer kann mit der Maus darauf klicken, um die Größe des Fensters vertikal zu ändern).
HTBOTTOMLEFT
16
In der unteren linken Ecke eines Rahmens eines Fensters mit größenveränderbarer Größe (der Benutzer kann mit der Maus klicken, um die Größe des Fensters diagonal zu ändern).
HTBOTTOMRIGHT
17
In der unteren rechten Ecke eines Rahmens eines Fensters mit Größenänderung (der Benutzer kann mit der Maus klicken, um die Größe des Fensters diagonal zu ändern).
ICEAPTION
2
In einer Titelleiste.
HTCLIENT
1
In einem Clientbereich.
NOKIALOSE
20
In einer Schaltfläche Schließen.
HTERROR
-2
Auf dem Bildschirmhintergrund oder auf einer Trennlinie zwischen Fenstern (identisch mit HTNOWHERE, mit der Ausnahme, dass die DefWindowProc-Funktion einen Systemsignal erzeugt, um auf einen Fehler hinzuweisen).
HTGROWBOX
4
In einem Größenfeld (identisch mit HTSIZE).
HTHELP
21
In einer Hilfeschaltfläche.
HTHSCROLL
6
In einer horizontalen Bildlaufleiste.
HTLEFT
10
Im linken Rahmen eines Fensters, in dem die Größe geändert werden kann (der Benutzer kann mit der Maus darauf klicken, um die Größe des Fensters horizontal zu ändern).
HTMENU
5
In einem Menü.
HTMAXBUTTON
9
In einer Schaltfläche Maximieren.
HTMINBUTTON
8
In einer Schaltfläche Minimieren.
HTNOWHERE
0
Auf dem Bildschirmhintergrund oder auf einer Trennlinie zwischen Fenstern.
HTREDUCE
8
In einer Schaltfläche Minimieren.
HTRIGHT
11
Im rechten Rahmen eines fenstergrößerbaren Fensters (der Benutzer kann mit der Maus klicken, um die Größe des Fensters horizontal zu ändern).
HTSIZE
4
In einem Größenfeld (identisch mit HTGROWBOX).
HTSYSMENU
3
In einem Fenstermenü oder in einer Schaltfläche Schließen in einem untergeordneten Fenster.
HTTOP
12
Im oberen horizontalen Rahmen eines Fensters.
HTTOPLEFT
13
In der oberen linken Ecke eines Fensterrahmens.
HTTOPRIGHT
14
In der oberen rechten Ecke eines Fensterrahmens.
HTTRANSPARENT
-1
In einem Fenster, das derzeit von einem anderen Fenster im gleichen Thread abgedeckt wird (die Meldung wird an zugrunde liegende Fenster im gleichen Thread gesendet, bis einer von ihnen einen Code zurückgibt, der nicht HTTRANSPARENT ist).
HTVSCROLL
7
In der vertikalen Bildlaufleiste.
HTZOOM
9
In einer Schaltfläche Maximieren.

Bemerkungen

Verwenden Sie den folgenden Code, um die horizontale und vertikale Position abzurufen:

xPos = GET_X_LPARAM(lParam); 
yPos = GET_Y_LPARAM(lParam);

Wie oben erwähnt, befindet sich die x-Koordinate in der unteren Reihenfolge unter dem Rückgabewert. die y-Koordinate ist in der hohen Reihenfolge kurz (beide stellen Signiertwerte dar, da sie negative Werte auf Systemen mit mehreren Monitoren annehmen können). Wenn der Rückgabewert einer Variablen zugewiesen wird, können Sie das MAKEPOINTS-Makro verwenden, um eine POINTS-Struktur aus dem Rückgabewert abzurufen. Sie können auch das MAKRO GET _ X _ LPARAM oder GET _ Y _ LPARAM verwenden, um die x- oder y-Koordinate zu extrahieren.

Wichtig

Verwenden Sie nicht die LOWORD- oder HIWORD-Makros, um die x- und y-Koordinaten der Cursorposition zu extrahieren, da diese Makros falsche Ergebnisse auf Systemen mit mehreren Monitoren zurückgeben. Systeme mit mehreren Monitoren können negative x- und y-Koordinaten aufweisen, und LOWORD und HIWORD behandeln die Koordinaten als Mengen ohne Vorzeichen.

Windows Vista: Wenn Sie benutzerdefinierte Frames erstellen, die die Standardbeschriftungsschaltflächen enthalten, sollte diese Meldung zuerst an die DwmDefWindowProc-Funktion übergeben werden. Dadurch kann der Desktopfenster-Manager (DWM) Treffertests für die Schaltflächen für Untertitel bereitstellen. Wenn DwmDefWindowProc die Nachricht nicht verarbeitet, ist möglicherweise eine weitere Verarbeitung von WM _ NCHITTEST erforderlich.

Requirements (Anforderungen)

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Winuser.h (windowsx.h einschließen)

Weitere Informationen

Verweis

DefWindowProc

GET _ X _ LPARAM

GET _ Y _ LPARAM

Konzept

Mauseingabe

Andere Ressourcen

MAKEPOINTS

PUNKTE