message WM_POINTERLEAVE
Envoyé à une fenêtre lorsqu’un pointeur quitte la plage de détection sur la fenêtre (pointage) ou lorsqu’un pointeur se déplace en dehors des limites de la fenêtre.
Une fenêtre reçoit ce message via sa fonction WindowProc.
! [Important]
Les applications de bureau doivent être conscientes des ppp. Si votre application n’est pas prise en charge par ppp, les coordonnées d’écran contenues dans les messages de pointeur et les structures associées peuvent sembler inexactes en raison de la virtualisation DPI. La virtualisation DPI fournit une prise en charge automatique de la mise à l’échelle pour les applications qui ne sont pas conscientes des ppp et qui sont actives par défaut (les utilisateurs peuvent le désactiver). Pour plus d’informations, consultez Écriture d’applications High-DPI Win32.
#define WM_POINTERLEAVE 0x024A
Paramètres
-
wParam
-
Contient l’identificateur du pointeur et des informations supplémentaires. Utilisez les macros suivantes pour récupérer ces informations.
- GET_POINTERID_WPARAM(wParam) : identificateur du pointeur.
- IS_POINTER_INRANGE_WPARAM(wParam) : indique si ce message a été généré par un pointeur qui n’a pas quitté la plage de détection. Cet indicateur n’est pas défini lorsque le pointeur quitte la plage de détection de la fenêtre.
- IS_POINTER_INCONTACT_WPARAM(wParam) : indicateur qui indique si ce message a été généré par un pointeur en contact. Cet indicateur n’est pas défini pour un pointeur dans la plage de détection (pointage).
-
lParam
-
Contient l’emplacement du pointeur.
Note
Étant donné que le pointeur peut contacter l’appareil sur une zone non triviale, cet emplacement de point peut être une simplification d’une zone de pointeur plus complexe. Dans la mesure du possible, une application doit utiliser les informations complètes de zone de pointeur au lieu de l’emplacement du point.
Utilisez les macros suivantes pour récupérer les coordonnées d’écran physiques du point.
- GET_X_LPARAM(lParam) : coordonnée x (point horizontal).
- GET_Y_LPARAM(lParam) : coordonnée y (point vertical).
Valeur de retour
Si une application traite ce message, elle doit retourner zéro.
Si l’application ne traite pas ce message, elle doit appeler DefWindowProc.
Remarques
La notification WM_POINTERLEAVE peut être utilisée par une fenêtre pour modifier le mode ou arrêter les commentaires de l’utilisateur pendant que le pointeur se trouve sur l’aire de la fenêtre.
Cette notification est envoyée uniquement à la fenêtre qui reçoit une entrée pour le pointeur. Le tableau suivant répertorie certaines des situations dans lesquelles cette notification est envoyée.
Action | Indicateurs définis | Notifications envoyées à |
---|---|---|
Un pointeur pointeur pointant traverse les limites de la fenêtre. | IS_POINTER_INRANGE_WPARAM | Fenêtre en dehors de laquelle le pointeur a été déplacé. |
Un pointeur sort de la plage de détection. | N/A | Fenêtre pour laquelle le pointeur quitte la plage de détection. |
! [Important]
Lorsqu’une fenêtre perd la capture d’un pointeur et qu’elle reçoit la notification WM_POINTERCAPTURECHANGED, elle ne reçoit généralement aucune autre notification. Pour cette raison, il est important de ne pas faire d’hypothèses basées sur des WM_POINTERDOWN/WM_POINTERUP ou des notifications WM_POINTERENTER/WM_POINTERLEAVE jumelées uniformément.
Si le contact est conservé avec le numériseur d’entrée et que le pointeur se déplace en dehors de la fenêtre, WM_POINTERLEAVE n’est pas généré. WM_POINTERLEAVE est généré uniquement lorsqu’un pointeur pointant traverse les limites de fenêtre ou qu’un contact est arrêté.
WM_POINTERLEAVE est publié dans la file d’attente de messages publiée si l’entrée provient d’un appareil de souris.
Exigences
Exigence | Valeur |
---|---|
Client minimum pris en charge |
Windows 8 [applications de bureau uniquement] |
Serveur minimum pris en charge |
Windows Server 2012 [applications de bureau uniquement] |
En-tête |
|