Delen via


Overzicht van het gebruik van de muis

Het ontvangen en verwerken van muisinvoer is een belangrijk onderdeel van elke Windows-toepassing. U kunt muisevenementen verwerken om een actie uit te voeren in uw toepassing of muislocatiegegevens gebruiken om hittests of andere acties uit te voeren. U kunt ook de manier wijzigen waarop de besturingselementen in uw toepassing muisinvoer verwerken. In dit artikel worden deze muisevenementen gedetailleerd beschreven en wordt beschreven hoe u systeeminstellingen voor de muis kunt verkrijgen en wijzigen.

In Windows Forms wordt gebruikersinvoer verzonden naar toepassingen in de vorm van Windows-messages. Een reeks methoden die overschrijfbaar zijn, verwerkt deze berichten op het niveau van de toepassing, het formulier en het besturingselement. Wanneer deze methoden muisberichten ontvangen, worden gebeurtenissen gegenereerd die kunnen worden verwerkt om informatie over de invoer van de muis op te halen. In veel gevallen kunnen Windows Forms-toepassingen alle gebruikersinvoer verwerken door deze gebeurtenissen te verwerken. In andere gevallen kan een toepassing een van de methoden overschrijven waarmee berichten worden verwerkt om een bepaald bericht te onderscheppen voordat het wordt ontvangen door de toepassing, het formulier of het besturingselement.

Muisevenementen

Alle Besturingselementen van Windows Forms nemen een reeks gebeurtenissen over die betrekking hebben op muis- en toetsenbordinvoer. Een besturingselement kan bijvoorbeeld de MouseClick gebeurtenis verwerken om de locatie van een muisklik te bepalen. Zie Gebruik van muisgebeurtenissenvoor meer informatie over de muisgebeurtenissen.

Locatie van de muis en het testen van treffers

Wanneer de gebruiker de muis verplaatst, verplaatst het besturingssysteem de muisaanwijzer. De muisaanwijzer bevat één pixel, de hot spot genoemd, die door het besturingssysteem wordt bijgehouden en herkend als de positie van de aanwijzer. Wanneer de gebruiker de muis beweegt of op een muisknop drukt, roept de Control die de HotSpot bevat de juiste muisgebeurtenis op.

U kunt de huidige muispositie verkrijgen met de eigenschap Location van de MouseEventArgs bij het afhandelen van een muisevenement of met behulp van de eigenschap Position van de Cursor-klasse. Vervolgens kunt u informatie over de locatie van de muis gebruiken om hittests uit te voeren en vervolgens een actie uit te voeren op basis van de locatie van de muis. De functie voor het testen van treffers is ingebouwd in verschillende controls in Windows Forms, zoals de ListView, TreeView, MonthCalendar en DataGridView controls.

Hit-testing is handig om te bepalen wanneer uw toepassing een specifieke actie moet uitvoeren, wanneer deze wordt gebruikt met de juiste muisgebeurtenis, zoals MouseHover.

Instellingen voor muisinvoer wijzigen

U kunt detecteren en wijzigen hoe een besturingselement muisinvoer verwerkt door van het besturingselement af te leiden en de GetStyle en SetStyle methoden te gebruiken. De SetStyle methode gebruikt een bitsgewijze combinatie van ControlStyles waarden om te bepalen of het besturingselement standaardklik, dubbelklikgedrag heeft of dat het besturingselement een eigen muisverwerking verwerkt. De SystemInformation-klasse bevat ook eigenschappen die de mogelijkheden van de muis beschrijven en opgeven hoe de muis communiceert met het besturingssysteem. De volgende tabel bevat een overzicht van deze eigenschappen.

Vastgoed Beschrijving
DoubleClickSize Hiermee krijgt u de afmetingen, in pixels, van het gebied waarin de gebruiker tweemaal moet klikken zodat het besturingssysteem dit als een dubbelklik beschouwt.
DoubleClickTime Hiermee haalt u het maximum aantal milliseconden op dat tussen een eerste klik en een tweede klik kan worden verstreken, zodat de muisactie als een dubbelklik kan worden beschouwd.
MouseButtons Hiermee bepaalt u het aantal knoppen op de muis.
MouseButtonsSwapped Hiermee wordt een waarde opgehaald die aangeeft of de functies van de linker- en rechtermuisknoppen zijn gewisseld.
MouseHoverSize Hiermee haalt u de afmetingen in pixels op van de rechthoek waarbinnen de muisaanwijzer moet blijven gedurende de wachttijd voordat een muis-hoverbericht wordt gegenereerd.
MouseHoverTime Hiermee wordt de tijd in milliseconden opgehaald die de muisaanwijzer in de hoverrechthoek moet blijven voordat er een hoverbericht voor de muis wordt verzonden.
MousePresent Hiermee wordt een waarde opgehaald die aangeeft of een muis is geïnstalleerd.
MouseSpeed Hiermee haalt u een waarde op die de huidige muissnelheid aangeeft, van 1 tot 20.
MouseWheelPresent Hiermee wordt een waarde opgehaald die aangeeft of een muis met een muiswiel is geïnstalleerd.
MouseWheelScrollDelta Hiermee haalt u de hoeveelheid deltawaarde van de verhoging van één muiswielrotatie op.
MouseWheelScrollLines Hiermee haalt u het aantal lijnen op om te scrollen wanneer het muiswiel wordt gedraaid.

Methoden voor het verwerken van gebruikersinvoerberichten

Formulieren en besturingselementen hebben toegang tot de IMessageFilter-interface en een set overschrijfbare methoden waarmee Windows-berichten op verschillende punten in de berichtenwachtrij worden verwerkt. Deze methoden hebben allemaal een Message parameter, die de details van Windows-berichten op laag niveau inkapselt. U kunt deze methoden implementeren of overschrijven om het bericht te onderzoeken en vervolgens het bericht te gebruiken of door te geven aan de volgende consument in de berichtenwachtrij. De volgende tabel bevat de methoden voor het verwerken van alle Windows-berichten in Windows Forms.

Methode Opmerkingen
PreFilterMessage Met deze methode worden in de wachtrij geplaatste (ook wel gepost) Windows-berichten op toepassingsniveau onderschept.
PreProcessMessage Met deze methode worden Windows-berichten op formulier- en controleniveau onderschept voordat ze zijn verwerkt.
WndProc Met deze methode worden Windows-berichten op formulier- en besturingsniveau verwerkt.
DefWndProc Met deze methode wordt de standaardverwerking van Windows-berichten uitgevoerd op formulier- en besturingsniveau. Dit biedt de minimale functionaliteit van een venster.
OnNotifyMessage Met deze methode worden berichten onderschept op formulier- en besturingsniveau, nadat deze zijn verwerkt. De EnableNotifyMessage stijlbit moet worden ingesteld om deze methode aan te roepen.

Zie ook