message WM_MOUSEWHEEL
Envoyé à la fenêtre de focus lorsque la roulette de la souris est pivotée. La fonction DefWindowProc propage le message au parent de la fenêtre. Il ne doit pas y avoir de transfert interne du message, car DefWindowProc le propage jusqu’à ce qu’il trouve une fenêtre qui le traite.
Une fenêtre reçoit ce message via sa fonction WindowProc.
#define WM_MOUSEWHEEL 0x020A
Paramètres
-
wParam
-
Le mot de haut ordre indique la distance que la roue est pivotée, exprimée en multiples ou divisions de WHEEL_DELTA, qui est de 120. Une valeur positive indique que la roue a été pivotée vers l’avant, loin de l’utilisateur ; une valeur négative indique que la roue a été pivotée vers l’arrière vers l’utilisateur.
Le mot de bas ordre indique si différentes clés virtuelles sont en panne. Ce paramètre peut être une ou plusieurs des valeurs suivantes.
Valeur Signification - MK_CONTROL
- 0x0008
La touche Ctrl est enfoncée. - MK_LBUTTON
- 0x0001
Le bouton gauche de la souris est enfoncé. - MK_MBUTTON
- 0x0010
Le bouton central de la souris est enfoncé. - MK_RBUTTON
- 0x0002
Le bouton droit de la souris est enfoncé. - MK_SHIFT
- 0x0004
La touche Maj est en panne. - MK_XBUTTON1
- 0x0020
La XBUTTON1 est en panne. - MK_XBUTTON2
- 0x0040
La XBUTTON2 est en panne. -
lParam
-
Le mot de bas ordre spécifie la coordonnée x du pointeur, par rapport au coin supérieur gauche de l’écran.
Le mot à ordre élevé spécifie la coordonnée y du pointeur, par rapport au coin supérieur gauche de l’écran.
Valeur de retour
Si une application traite ce message, elle doit retourner zéro.
Remarques
Utilisez le code suivant pour obtenir les informations dans le paramètre wParam :
fwKeys = GET_KEYSTATE_WPARAM(wParam);
zDelta = GET_WHEEL_DELTA_WPARAM(wParam);
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 se trouve dans le court de la valeur de retour ; la coordonnée y se trouve dans l’ordre élevé courte (les deux représentent valeurs signées, car elles peuvent prendre des valeurs négatives sur les systèmes avec plusieurs moniteurs). Si la valeur de retour 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 LOWORD
La rotation des roues sera un multiple de WHEEL_DELTA, qui est définie à 120. Il s’agit du seuil d’action à entreprendre, et une telle action (par exemple, le défilement d’un incrément) doit se produire pour chaque delta.
Le delta a été défini sur 120 pour permettre à Microsoft ou à d’autres fournisseurs de créer des roues de résolution plus fines (roue librement pivotante sans pouces) pour envoyer plus de messages par rotation, mais avec une plus petite valeur dans chaque message. Pour utiliser cette fonctionnalité, vous pouvez ajouter les valeurs delta entrantes jusqu’à ce que WHEEL_DELTA soit atteinte (par conséquent, pour une rotation delta, vous obtenez la même réponse), ou faire défiler les lignes partielles en réponse aux messages les plus fréquents. Vous pouvez également choisir votre granularité de défilement et accumuler des deltas jusqu’à ce qu’elle soit atteinte.
Notez qu’il n’existe aucun fwKeys pour MSH_MOUSEWHEEL. Sinon, les paramètres sont exactement les mêmes que pour WM_MOUSEWHEEL.
Il incombe à l’application de transférer MSH_MOUSEWHEEL à tous les objets ou contrôles incorporés. L’application est nécessaire pour envoyer le message à une application OLE incorporée active. Il est facultatif que l’application l’envoie à un contrôle avec roue avec focus. Si l’application envoie le message à un contrôle, elle peut vérifier la valeur de retour pour voir si le message a été traité. Les contrôles doivent retourner une valeur de TRUE s’ils traitent le message.
Exigences
Exigence | Valeur |
---|---|
Client minimum pris en charge |
Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimum pris en charge |
Windows 2000 Server [applications de bureau uniquement] |
En-tête |
|
Voir aussi
-
de référence
-
conceptuelle
-
autres ressources