Freigeben über


CWnd::OnSysKeyDown

Wenn das Objekt CWnd den Eingabefokus hat, wird die OnSysKeyDown-Memberfunktion vom Framework aufgerufen, wenn der Benutzer die ALT-TASTE gedrückt hält und dann eine andere Taste drückt.

afx_msg void OnSysKeyDown(
   UINT nChar,
   UINT nRepCnt,
   UINT nFlags 
);

Parameter

  • nChar
    Gibt den virtuellen Tastencode der Schlüssel an, die gedrückt wird.Eine Liste der Standardvirtuellen tastencodes, finden Sie Winuser.h

  • nRepCnt
    Gibt die Wiederholzahl an.

  • nFlags
    Gibt den Überprüfungscode, den Tastenzustand, den vorherigen Tastenzustand und den Kontextcode, wie in der folgenden Liste dargestellt:

    Wert

    Bedeutung

    0–7

    Überprüfungscode (Wert des OEM-abhängigen Elements).Niederwertiges Byte höherwertigen des Wortes.

    8

    Erweiterte Schlüssel, wie eine Funktionstaste oder Schlüssels auf der Zehnertastatur (1, wenn eine erweiterte Schlüssel ist; 0 andernfalls).

    9–10

    Wird nicht verwendet.

    11–12

    Intern verwendet von Windows.

    13

    Kontextcode (1, wenn die ALT-TASTE gedrückt gehalten wird, während die Taste gedrückt wird; andernfalls 0).

    14

    Vorheriger Tastenzustand (1, wenn der Schlüssel unten ist, bevor die Meldung gesendet wird, 0, wenn der Schlüssel oben ist).

    15

    Übergangszustand (1, wenn der Schlüssel freigegeben wird, 0, wenn die Taste gedrückt wird).

    Für OnSysKeyDown Aufrufe ist das TasteÜbergang Bit (ein Bit 15) 0.Das KontextCode Bit (13 Bits) ist 1, wenn die ALT-TASTE gedrückt ist, während die Taste gedrückt wird, Es ist 0, wenn die Meldung an das aktive Fenster gesendet wird, da kein Fenster den Eingabefokus hat.

Hinweise

Wenn kein Fenster gerade den Eingabefokus hat, wird die OnSysKeyDown-Memberfunktion des aktiven Fensters aufgerufen.Das CWnd-Objekt, das die Meldung empfängt, kann zwischen diesen beiden Kontexten unterscheiden, indem Sie den Kontextcode in nFlags überprüft.

Wenn der Kontextcode 0 ist, kann die WM_SYSKEYDOWN Meldung, die von OnSysKeyDown empfangen wird, zur TranslateAccelerator Windows-Funktion übergeben werden, die sie behandelt, als ob es eine normale Tastenmeldung anstelle einer SystemTaste Meldung war.Dies ermöglicht die dem aktiven Fenster verwendet werden, Zugriffstasten, auch wenn das aktive Fenster nicht den Eingabefokus hat.

Aufgrund AUTOREPEATs tritt mehr als ein OnSysKeyDown Aufruf möglicherweise auf, bevor die WM_SYSKEYUP Nachricht empfangen wird.Der vorherige Tastenzustand (14 Bits) kann verwendet werden, um zu bestimmen, ob der OnSysKeyDown Aufruf den ersten unten Übergang oder angibt, die resultierende Übergang wiederholt werden.

Bei IBM erhöht 101 - und 102 Schlüsseltastaturen, verbesserte Schlüssel sind rechte ALT und rechten STRG-TASTE auf dem Abschnitt der Tastatur; INS, ENTF, POS1, ENDE, BILD-AUF, BILD-AB und Pfeiltasten in Clustern auf der linken Seite der Zehnertastatur; und der Schrägstrich (/) und EINGABETASTE in der Zehnertastatur.Einige andere Tastaturen unterstützen möglicherweise die erweiterte Schlüssel, die in nFlags ein Bit verwendet wird.

HinweisHinweis

Diese Memberfunktion wird vom Framework aufgerufen, um die Anwendung zu ermöglichen, eine Windows-Meldung zu bearbeiten.Die Parameter, die an die Funktion übergeben werden, geben die Parameter, die vom Framework empfangen werden, als die Nachricht empfangen wurde.Wenn Sie die Basisklassenimplementierung dieser Funktion aufrufen, verwendet diese Implementierung die Parameter, die mit der Meldung übergeben werden und nicht die Parameter, die an die Funktion bereitstellen.

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CWnd-Klasse

Hierarchien-Diagramm

TranslateAccelerator

CWnd::OnSysKeyUp

WM_SYSKEYDOWN