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 compatibles ppp. Si votre application ne prend pas en charge la résolution des problèmes, les coordonnées d’écran contenues dans les messages de pointeur et les structures associées peuvent sembler inexactes en raison de la virtualisation PPP. La virtualisation PPP fournit une prise en charge automatique de la mise à l’échelle pour les applications qui ne prennent pas en charge la résolution des problèmes de résolution et qui sont actives par défaut (les utilisateurs peuvent la désactiver). Pour plus d’informations, consultez Écriture d’applications Win32 haute résolution.
#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 qui est 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.
Notes
Étant donné que le pointeur peut entrer en contact avec 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 sur la 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 retournée
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 changer de mode ou arrêter tout commentaire à l’utilisateur lorsque le pointeur se trouve sur la surface 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 | Jeu d’indicateurs | Notifications envoyées à |
---|---|---|
Un pointeur pointant franchit les limites de la fenêtre. | IS_POINTER_INRANGE_WPARAM | Fenêtre à l’extérieur 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/uniformément jumelées WM_POINTERUP ou WM_POINTERENTER/notifications WM_POINTERLEAVE .
Si le contact est maintenu avec le numériseur d’entrée et que le pointeur se déplace à l’extérieur de la fenêtre, WM_POINTERLEAVE n’est pas généré. WM_POINTERLEAVE est généré uniquement lorsqu’un pointeur pointeur franchit les limites de la fenêtre ou qu’un contact est arrêté.
WM_POINTERLEAVE est publié dans la file d’attente des messages publiés si l’entrée provient d’un appareil à souris.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows 8 [applications de bureau uniquement] |
Serveur minimal pris en charge |
Windows Server 2012 [applications de bureau uniquement] |
En-tête |
|