Delen via


Over sneltoetsbediening

Een sneltoetscontrole is een venster waarmee de gebruiker een combinatie van toetsaanslagen kan invoeren die als sneltoets kunnen worden gebruikt. Een sneltoets is een toetsencombinatie waarop de gebruiker kan drukken om snel een actie uit te voeren. Een gebruiker kan bijvoorbeeld een sneltoets maken waarmee een bepaald venster wordt geactiveerd en deze boven aan de z-volgorde wordt geplaatst. Het sneltoets besturingselement geeft de keuzen van de gebruiker weer en zorgt ervoor dat de gebruiker een geldige toetsencombinatie selecteert. In de volgende schermafbeelding ziet u hoe een besturingselement voor sneltoetsen verschijnt in een dialoogvenster nadat de gebruiker op de Alt-toets heeft gedrukt.

schermafbeelding van een dialoogvenster met een sneltoets

Sneltoets bedieningselementen gebruiken

Wanneer de gebruiker een toetsencombinatie invoert die moet worden gebruikt als een sneltoets, worden de namen van de sleutels weergegeven in het besturingselement voor sneltoetsen. Een toetsencombinatie kan bestaan uit een wijzigingstoets (zoals Ctrl, Alt of Shift) en een bijbehorende toets (zoals een tekentoets, een pijltoets, een functietoets, enzovoort).

Nadat de gebruiker een toetsencombinatie heeft gekozen, haalt de toepassing de toetsencombinatie op uit het besturingselement voor sneltoetsen en gebruikt deze om een sneltoets in het systeem in te stellen. De informatie die wordt opgehaald uit het sneltoetsbesturingselement bevat een vlag die de wijzigingssleutel en de code van de virtuele sleutel van de bijbehorende sleutel aangeeft.

De toepassing kan de informatie van een sneltoets gebruiken om een globale sneltoets of een threadspecifieke sneltoets in te stellen. Een globale sneltoets is gekoppeld aan een bepaald venster; hiermee kan de gebruiker het venster activeren vanuit elk deel van het systeem. Een toepassing stelt een globale sneltoets in met behulp van het WM_SETHOTKEY bericht. Wanneer de gebruiker op een globale sneltoets drukt, ontvangt het venster dat is opgegeven in WM_SETHOTKEY een WM_SYSCOMMAND bericht met de SC_HOTKEY waarde. Dit bericht activeert het venster dat het ontvangt. De sneltoets blijft geldig totdat de toepassing die WM_SETHOTKEY heeft aangeroepen, wordt afgesloten.

Een threadspecifieke sneltoets genereert een WM_HOTKEY bericht dat wordt gepost aan het begin van een bepaalde thread, zodat deze wordt verwijderd door de volgende iteratie van de berichtlus. Een toepassing stelt een threadspecifieke sneltoets in met behulp van de functie RegisterHotKey.

Sneltoetsbesturingsberichten

Nadat u een sneltoetscontrole hebt aangemaakt, communiceert een toepassing ermee met behulp van drie berichten: HKM_SETRULES, HKM_SETHOTKEYen HKM_GETHOTKEY.

Een toepassing kan het HKM_SETRULES bericht verzenden om een set toetsencombinaties ctrl, Alt en Shift op te geven die als ongeldige sneltoetsen worden beschouwd. Als de toepassing een ongeldige toetsencombinatie opgeeft, moet deze ook een standaardcombinatie voor modifier opgeven die moet worden gebruikt wanneer de gebruiker de ongeldige combinatie selecteert. Wanneer de gebruiker de ongeldige combinatie invoert, voert het systeem een logische OR-bewerking uit op de ongeldige combinatie en de standaardcombinatie. Het resultaat wordt beschouwd als een geldige combinatie; het wordt geconverteerd naar een tekenreeks en weergegeven in het besturingselement.

Met het HKM_SETHOTKEY bericht kan een toepassing de sneltoetscombinatie voor een sneltoets instellen. Dit bericht wordt gebruikelijk ook gebruikt wanneer het besturingselement voor sneltoetsen wordt gemaakt.

Toepassingen gebruiken het HKM_GETHOTKEY bericht om de code van de virtuele sleutel en de wijzigingsvlagken op te halen van de sneltoets die door de gebruiker is gekozen.

Sneltoetsmeldingen

Het besturingselement voor sneltoetsen verzendt geen meldingscodes via het WM_NOTIFY bericht. De EN_CHANGE melding wordt echter verzonden via het WM_COMMAND bericht wanneer de gebruiker de inhoud van de bedieningselementen wijzigt.

Standaardverwerking van hot key-berichten

In deze sectie worden de vensterberichten beschreven die door de vensterprocedure worden afgehandeld voor de vooraf gedefinieerde HOTKEY_CLASS vensterklasse die wordt gebruikt met sneltoetsbediening.

Bericht Verwerking uitgevoerd
WM_CHAR Haalt de code van de virtuele sleutel op.
WM_CREATE Initialiseert de sneltoetscontrole, wist eventuele sneltoetsregels en gebruikt het systeemlettertype.
WM_ERASEBKGND Verbergt de caret, roept de DefWindowProc functie aan en toont de caret opnieuw.
WM_GETDLGCODE Retourneert een combinatie van de waarden DLGC_WANTCHARS en DLGC_WANTARROWS.
WM_GETFONT Hiermee haalt u het lettertype op.
WM_KEYDOWN Roept de DefWindowProc--functie aan als de toets ENTER, TAB, SPATIEBALK, DEL, ESC of BACKSPACE is. Als de toets Shift, Ctrl of Alt is, wordt gecontroleerd of de combinatie geldig is en wordt de sneltoets ingesteld met behulp van de combinatie. Alle andere sleutels worden ingesteld als sneltoetsen zonder dat hun geldigheid eerst wordt gecontroleerd.
WM_KEYUP Haalt de code van de virtuele sleutel op.
WM_KILLFOCUS Vernietigt de caret.
WM_LBUTTONDOWN Hiermee stelt u de focus in op het venster.
WM_NCCREATE Hiermee stelt u de stijl van het WS_EX_CLIENTEDGE venster in.
WM_PAINT Verft het sneltoets besturingselement.
WM_SETFOCUS Maakt en toont de caret.
WM_SETFONT Hiermee stelt u het lettertype in.
WM_SYSCHAR Haalt de code van de virtuele sleutel op.
WM_SYSKEYDOWN Roept de DefWindowProc functie aan als de toets ENTER, TAB, SPATIEBALK, DEL, ESC of BACKSPACE is. Als de toets Shift, Ctrl of Alt is, wordt gecontroleerd of de combinatie geldig is en wordt de sneltoets ingesteld met behulp van de combinatie. Alle andere sleutels worden ingesteld als sneltoetsen zonder dat hun geldigheid eerst wordt gecontroleerd.
WM_SYSKEYUP Haalt de code van de virtuele sleutel op.