Message WM_NCHITTEST
Envoyé à une fenêtre afin de déterminer quelle partie de la fenêtre correspond à une coordonnée d’écran particulière. Cela peut se produire, par exemple, lorsque le curseur se déplace, lorsqu’un bouton de la souris est enfoncé ou relâché, ou en réponse à un appel à une fonction telle que WindowFromPoint. Si la souris n’est pas capturée, le message est envoyé dans la fenêtre située sous le curseur. Sinon, le message est envoyé dans la fenêtre qui a capturé la souris.
Une fenêtre reçoit ce message à travers sa fonction WindowProc.
#define WM_NCHITTEST 0x0084
Paramètres
-
wParam
-
Ce paramètre n'est pas utilisé.
-
lParam
-
Le mot d’ordre inférieur spécifie la coordonnée x du curseur. La coordonnée est relative au coin supérieur gauche de l’écran.
Le mot de poids fort spécifie la coordonnée y du curseur. La coordonnée est relative au coin supérieur gauche de l’écran.
Valeur retournée
La valeur de retour de la fonction DefWindowProc est l’une des valeurs suivantes, indiquant la position de la zone réactive du curseur.
Valeur/code de retour | Description |
---|---|
|
Dans la bordure d’une fenêtre qui n’a pas de bordure de dimensionnement. |
|
Dans la bordure horizontale inférieure d’une fenêtre redimensionnable (l’utilisateur peut cliquer sur la souris pour redimensionner la fenêtre verticalement). |
|
Dans le coin inférieur gauche d’une fenêtre redimensionnable (l’utilisateur peut cliquer sur la souris pour redimensionner la fenêtre en diagonale). |
|
Dans le coin inférieur droit d’une fenêtre redimensionnable (l’utilisateur peut cliquer sur la souris pour redimensionner la fenêtre en diagonale). |
|
Dans une barre de titre. |
|
Dans une zone cliente. |
|
Dans un bouton Fermer. |
|
Sur l’arrière-plan de l’écran ou sur une ligne de séparation entre des fenêtres (identique à HTNOWHERE, sauf que la fonction DefWindowProc produit un bip système pour indiquer une erreur). |
|
Dans une zone de dimensionnement (identique à HTSIZE). |
|
Dans un bouton Aide. |
|
Dans une barre de défilement horizontale. |
|
Dans la bordure gauche d’une fenêtre redimensionnable (l’utilisateur peut cliquer sur la souris pour redimensionner la fenêtre horizontalement). |
|
Dans un menu. |
|
Dans un bouton Agrandir. |
|
Dans un bouton Réduire. |
|
Sur l’arrière-plan de l’écran ou sur une ligne de séparation entre des fenêtres. |
|
Dans un bouton Réduire. |
|
Dans la bordure droite d’une fenêtre redimensionnable (l’utilisateur peut cliquer sur la souris pour redimensionner la fenêtre horizontalement). |
|
Dans une zone de dimensionnement (identique à HTGROWBOX). |
|
Dans un menu de fenêtre ou dans un bouton Fermer dans une fenêtre enfant. |
|
Dans la bordure supérieure horizontale d’une fenêtre. |
|
Dans le coin supérieur gauche d’une bordure de fenêtre. |
|
Dans le coin supérieur droit d’une bordure de fenêtre. |
|
Dans une fenêtre couverte par une autre fenêtre du même thread (le message est envoyé aux fenêtres sous-jacentes du même thread jusqu’à ce que l’une d’elles retourne un code qui n’est pas HTTRANSPARENT). |
|
Dans la barre de défilement vertical. |
|
Dans un bouton Agrandir. |
Notes
Utilisez le code suivant pour obtenir la position horizontale et verticale :
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
Comme indiqué ci-dessus, la coordonnée x est dans l’ordre inférieur court de la valeur de retour ; la coordonnée y est dans l’ordre supérieur court (les deux représentent des valeurs signées, car elles peuvent prendre des valeurs négatives sur des systèmes avec plusieurs moniteurs). Si la valeur retournée est affectée à une variable, vous pouvez utiliser la macro MAKEPOINTS pour obtenir une structure POINTS à partir de la valeur de retour. Vous pouvez également utiliser la macro GET_X_LPARAM ou GET_Y_LPARAM pour extraire la coordonnée x ou y.
Important
N’utilisez pas les macros LOWORD ou HIWORD pour extraire les coordonnées x et y de la position du curseur, car ces macros retournent des résultats incorrects sur les systèmes avec plusieurs moniteurs. Les systèmes avec plusieurs moniteurs peuvent avoir des coordonnées x et y négatives, et LOWORD et HIWORD traitent les coordonnées comme des quantités non signées.
Windows Vista : lors de la création de cadres personnalisés qui incluent les boutons de légende standard, ce message doit d’abord être passé à la fonction DwmDefWindowProc. Cela permet au Gestionnaire de fenêtres du Bureau de fournir des tests d’accès pour les boutons de légendes. Si DwmDefWindowProc ne gère pas le message, un traitement supplémentaire de WM_NCHITTEST peut être nécessaire.
Spécifications
Condition requise | Value |
---|---|
Client minimal pris en charge |
Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge |
Windows 2000 Server [applications de bureau uniquement] |
En-tête |
|
Voir aussi
-
Référence
-
Conceptuel
-
Autres ressources