WM_MOUSEHWHEEL bericht
Verzonden naar het actieve venster wanneer het horizontale schuifwiel van de muis wordt gekanteld of gedraaid. De functie DefWindowProc het bericht doorgegeven aan het bovenliggende venster. Er mag geen intern doorsturen van het bericht zijn, omdat DefWindowProc deze doorgeeft aan de bovenliggende keten totdat er een venster wordt gevonden dat het verwerkt.
Een venster ontvangt dit bericht via de functie WindowProc.
#define WM_MOUSEHWHEEL 0x020E
Parameters
-
wParam-
-
Het woord met hoge volgorde geeft aan hoe ver het wiel wordt gedraaid, uitgedrukt in veelvouden of factoren van WHEEL_DELTA, die is ingesteld op 120. Een positieve waarde geeft aan dat het wiel naar rechts is gedraaid; een negatieve waarde geeft aan dat het wiel naar links is gedraaid.
Het woord met een lage volgorde geeft aan of verschillende virtuele sleutels niet beschikbaar zijn. Deze parameter kan een of meer van de volgende waarden zijn.
Waarde Betekenis - MK_CONTROL
- 0x0008
De Ctrl-toets is niet beschikbaar. - MK_LBUTTON
- 0x0001
De linkermuisknop is offline. - MK_MBUTTON
- 0x0010
De middelste muisknop is omlaag. - MK_RBUTTON
- 0x0002
De rechtermuisknop is omlaag. - MK_SHIFT
- 0x0004
De Shift-toets is niet beschikbaar. - MK_XBUTTON1
- 0x0020
De XBUTTON1 is offline. - MK_XBUTTON2
- 0x0040
De XBUTTON2 is uit. -
lParam-
-
Het woord met lage volgorde geeft de x-coördinaat van de aanwijzer op ten opzichte van de linkerbovenhoek van het scherm.
Het woord met hoge volgorde geeft de y-coördinaat van de aanwijzer op ten opzichte van de linkerbovenhoek van het scherm.
Retourwaarde
Als een toepassing dit bericht verwerkt, moet het nul retourneren.
Opmerkingen
Gebruik de volgende code om de informatie op te halen in de parameter wParam.
fwKeys = GET_KEYSTATE_WPARAM(wParam);
zDelta = GET_WHEEL_DELTA_WPARAM(wParam);
Gebruik de volgende code om de horizontale en verticale positie te verkrijgen.
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
Zoals hierboven vermeld, bevindt de x-coördinaat zich in de lage volgorde korte van de retourwaarde; de y-coördinaat bevindt zich in de volgorde korte (beide vertegenwoordigen ondertekende waarden omdat ze negatieve waarden op systemen met meerdere monitors kunnen aannemen). Als de retourwaarde is toegewezen aan een variabele, kunt u de macro MAKEPOINTS- gebruiken om een PUNTEN structuur te verkrijgen van de retourwaarde. U kunt ook de GET_X_LPARAM of GET_Y_LPARAM macro gebruiken om de x- of y-coördinaat op te halen.
Belangrijk
Gebruik de LOWORD- of HIWORD- macro's niet om de x- en y-coördinaten van de cursorpositie te extraheren, omdat deze macro's onjuiste resultaten retourneren op systemen met meerdere beeldschermen. Systemen met meerdere monitors kunnen negatieve x- en y-coördinaten hebben, en LOWORD- en HIWORD- de coördinaten behandelen als niet-ondertekende hoeveelheden.
De wielrotatie is een veelvoud van WHEEL_DELTA, die is ingesteld op 120. Dit is de drempelwaarde voor actie die moet worden uitgevoerd en een dergelijke actie (bijvoorbeeld één stap schuiven) moet plaatsvinden voor elke delta.
De delta is ingesteld op 120, zodat Microsoft of andere leveranciers nauwkeurigere resolutiewielen kunnen bouwen (bijvoorbeeld een vrij draaiend wiel zonder inkepingen) om meer berichten per draaiing te verzenden, maar met een kleinere waarde in elk bericht. Als u deze functie wilt gebruiken, kunt u de binnenkomende deltawaarden toevoegen totdat WHEEL_DELTA is bereikt (dus voor een deltarotatie krijgt u hetzelfde antwoord) of schuift u gedeeltelijke lijnen als reactie op frequentere berichten. U kunt ook uw schuifgranulariteit kiezen en delta's verzamelen totdat deze is bereikt.
Eisen
Eis | Waarde |
---|---|
Minimaal ondersteunde client |
Windows Vista [alleen desktop-apps] |
Minimaal ondersteunde server |
Windows Server 2008 [alleen desktop-apps] |
Rubriek |
|
Zie ook
-
-
conceptuele
-
andere resources