CKeyboardManager-Klasse

Verwaltet Tastenkombinationstabellen für das Hauptrahmenfenster und die untergeordneten Rahmenfenster.

Syntax

class CKeyboardManager : public CObject

Member

Öffentliche Konstruktoren

Name Beschreibung
CKeyboardManager::CKeyboardManager Erstellt ein CKeyboardManager-Objekt.

Öffentliche Methoden

Name Beschreibung
CKeyboardManager::CleanUp Löscht die Tastenkombinationstabellen.
CKeyboardManager::FindDefaultAccelerator Ruft die Standardverknüpfungstaste für den angegebenen Befehl und das angegebene Fenster ab.
CKeyboardManager::IsKeyHandled Bestimmt, ob eine Taste von der Zugriffstastentabelle behandelt wird.
CKeyboardManager::IsKeyPrintable Gibt an, ob ein Zeichen gedruckt werden kann.
CKeyboardManager::IsShowAllAccelerators Gibt an, ob alle Tastenkombinationen für einen Befehl oder nur die Standardverknüpfungstaste angezeigt werden.
CKeyboardManager::LoadState Lädt die Tastenkombinationstabellen aus der Windows-Registrierung.
CKeyboardManager::ResetAll Lädt die Tastenkombinationstabellen aus der Anwendungsressource neu.
CKeyboardManager::SaveState Speichert die Tastenkombinationstabellen in der Windows-Registrierung.
CKeyboardManager::ShowAllAccelerators Gibt an, ob im Framework alle Tastenkombinationen für alle Befehle oder eine einzelne Tastenkombination für jeden Befehl angezeigt werden. Diese Methode wirkt sich nicht auf Befehle aus, die nur eine zugeordnete Tastenkombination aufweisen.
CKeyboardManager::TranslateCharToUpper Wandelt ein Zeichen in das obere Register um.
CKeyboardManager::UpdateAccelTable Aktualisiert eine Tastenkombinationstabelle mit einer neuen Tastenkombinationstabelle.

Hinweise

Mit den Membern dieser Klasse können Sie Tastenkombinationstabellen in der Windows-Registrierung speichern und laden, eine Vorlage verwenden, um die Kurzschnitttastentabellen zu aktualisieren und die Standardverknüpfungsschlüssel für einen Befehl in einem Framefenster zu finden. Darüber hinaus können Sie mit dem CKeyboardManager Objekt steuern, wie Tastenkombinationen für den Benutzer angezeigt werden.

Sie sollten ein CKeyboardManager Objekt nicht manuell erstellen. Sie wird automatisch vom Framework Ihrer Anwendung erstellt. Sie sollten jedoch CWinAppEx::InitKeyboardManager während des Initialisierungsprozesses Ihrer Anwendung aufrufen. Um einen Zeiger auf den Tastatur-Manager für Ihre Anwendung zu erhalten, rufen Sie CWinAppEx::GetKeyboardManager auf.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie sie einen Zeiger auf ein CKeyboardManager Objekt aus einer CWinAppEx Klasse abrufen und wie alle Tastenkombinationen angezeigt werden, die Menübefehlen zugeordnet sind. Dieser Codeausschnitt ist Teil des Beispiels "Benutzerdefinierte Seiten".

// The GetKeyboardManager method is inherited from the CWinAppEx class.
CKeyboardManager *cKeyboardManager = GetKeyboardManager();
cKeyboardManager->ShowAllAccelerators();

Vererbungshierarchie

CObject

CKeyboardManager

Anforderungen

Header: afxkeyboardmanager.h

CKeyboardManager::CKeyboardManager

Erstellt ein CKeyboardManager-Objekt.

CKeyboardManager();

Hinweise

In den meisten Fällen müssen Sie keinen direkten Erstellen CKeyboardManager . Standardmäßig erstellt das Framework ein Framework für Sie. Rufen Sie zum Abrufen eines Zeigers auf den CKeyboardManagerCWinAppEx::GetKeyboardManager auf. Wenn Sie eine manuell erstellen, müssen Sie sie mit der Methode CWinAppEx::InitKeyboardManager initialisieren.

CKeyboardManager::CleanUp

Gibt die CKeyboardManager Ressourcen frei und löscht alle Tastenkombinationen.

static void CleanUp();

Hinweise

Weitere Informationen zu Tastenkombinationen finden Sie unter Tastatur- und Mausanpassung.

Sie müssen diese Funktion nicht aufrufen, wenn Ihre Anwendung beendet wird, da das Framework sie während des Beendens der Anwendung automatisch aufruft.

CKeyboardManager::FindDefaultAccelerator

Ruft die Standardverknüpfungstaste für den angegebenen Befehl und das angegebene Fenster ab.

static BOOL FindDefaultAccelerator(
    UINT uiCmd,
    CString& str,
    CFrameWnd* pWndFrame,
    BOOL bIsDefaultFrame);

Parameter

uiCmd
[in] Die Befehls-ID.

str
[out] Ein Verweis auf ein CString Objekt.

pWndFrame
[in] Ein Zeiger auf ein Rahmenfenster.

bIsDefaultFrame
[in] Gibt an, ob das Rahmenfenster das Standardrahmenfenster ist.

Rückgabewert

Nonzero, wenn die Verknüpfung gefunden wird; andernfalls 0.

Hinweise

Diese Methode sucht den von uiCmd angegebenen Befehl und ruft die Standardverknüpfungstaste ab. Anschließend übernimmt die Methode die Zeichenfolge, die dieser Tastenkombination zugeordnet ist, und schreibt den Wert in den Str-Parameter .

CKeyboardManager::IsKeyHandled

Bestimmt, ob der angegebene Schlüssel von der CKeyboardManager-Klasse behandelt wird.

static BOOL __stdcall IsKeyHandled(
    WORD nKey,
    BYTE fVirt,
    CFrameWnd* pWndFrame,
    BOOL bIsDefaultFrame);

Parameter

nKey
[in] Der zu überprüfende Schlüssel.

fVirt
[in] Gibt das Verhalten der Tastenkombination an. Eine Liste der möglichen Werte finden Sie unter ACCEL-Struktur.

pWndFrame
[in] Ein Rahmenfenster. Diese Methode bestimmt, ob in diesem Frame eine Tastenkombination behandelt wird.

bIsDefaultFrame
[in] Ein boolescher Parameter, der angibt, ob pWndFrame das Standardframefenster ist.

Rückgabewert

TRUE, wenn die Tastenkombination behandelt wird. FALSE, wenn der Schlüssel nicht behandelt wird oder pWndFrame NULL ist.

Hinweise

Die Eingabeparameter müssen mit dem Eintrag in der Zugriffstastentabelle übereinstimmen, sowohl für nKey als auch für fVirt, um zu bestimmen, ob eine Tastenkombination in pWndFrame behandelt wird.

CKeyboardManager::IsKeyPrintable

Gibt an, ob ein Zeichen gedruckt werden kann.

static BOOL __stdcall IsKeyPrintable(const UINT nChar);

Parameter

Nchar
[in] Das Von dieser Methode überprüfte Zeichen.

Rückgabewert

Nonzero, wenn das Zeichen druckbar ist, Null, wenn das nicht der Wert ist.

Hinweise

Diese Methode schlägt fehl, wenn ein Aufruf von GetKeyboardState fehlschlägt.

CKeyboardManager::IsShowAllAccelerators

Gibt an, ob Menüs alle Tastenkombinationen anzeigen, die Menübefehlen zugeordnet sind, oder nur die Standardtastenkombinationen.

static BOOL IsShowAllAccelerators();

Rückgabewert

Nonzero, wenn die Anwendung alle Tastenkombinationen für Menübefehle auflistet; 0, wenn die Anwendung nur Standardtasten anzeigt.

Hinweise

Die Anwendung listet die Tastenkombinationen für Menübefehle in der Menüleiste auf. Verwenden Sie die Funktion CKeyboardManager::ShowAllAccelerators , um zu steuern, ob die Anwendung alle Tastenkombinationen oder nur die Standardtasten auflistet.

CKeyboardManager::LoadState

Lädt die Tastenkombinationstabellen aus der Windows-Registrierung.

BOOL LoadState(
    LPCTSTR lpszProfileName = NULL,
    CFrameWnd* pDefaultFrame = NULL);

Parameter

lpszProfileName
[in] Der Registrierungspfad, in dem CKeyboardManager Daten gespeichert werden.

pDefaultFrame
[in] Ein Zeiger auf ein Rahmenfenster, das als Standardfenster verwendet werden soll.

Rückgabewert

Nonzero, wenn der Zustand erfolgreich geladen wurde oder 0 andernfalls.

Hinweise

Wenn der parameter lpszProfileName NULL ist, überprüft diese Methode den Standardregistrierungsspeicherort auf CKeyboardManager Daten. Der Standardregistrierungsspeicherort wird von der CWinAppEx-Klasse angegeben. Die Daten müssen zuvor mit der Methode CKeyboardManager::SaveState geschrieben werden.

Wenn Sie kein Standardfenster angeben, wird das Standard Framefenster Ihrer Anwendung verwendet.

CKeyboardManager::ResetAll

Lädt die Tastenkombinationstabellen aus der Anwendungsressource neu.

void ResetAll();

Hinweise

Diese Funktion löscht die in der CKeyboardManager Instanz gespeicherten Tastenkombinationen. Anschließend wird der Zustand des Tastatur-Managers aus der Anwendungsressource neu geladen.

CKeyboardManager::SaveState

Speichert die Tastenkombinationstabellen in der Windows-Registrierung.

BOOL SaveState(
    LPCTSTR lpszProfileName = NULL,
    CFrameWnd* pDefaultFrame = NULL);

Parameter

lpszProfileName
[in] Der Registrierungspfad zum Speichern des CKeyboardManager Zustands.

pDefaultFrame
[in] Ein Zeiger auf ein Rahmenfenster, das zum Standardfenster wird.

Rückgabewert

Nonzero, wenn der Tastatur-Manager-Zustand erfolgreich gespeichert wurde, oder 0 andernfalls.

Hinweise

Wenn der parameter lpszProfileName NULL ist, schreibt diese Methode den CKeyboardManager Zustand an den Standardspeicherort, der von der CWinAppEx-Klasse angegeben wird. Wenn Sie einen Speicherort angeben, können Sie die Daten später mit der Methode CKeyboardManager::LoadState laden.

Wenn Sie kein Standardfenster angeben, wird das Standard Rahmenfenster als Standardfenster verwendet.

CKeyboardManager::ShowAllAccelerators

Zeigt alle Tastenkombinationen an, die Menübefehlen zugeordnet sind.

static void ShowAllAccelerators(
    BOOL bShowAll = TRUE,
    LPCTSTR lpszDelimiter = _afxDefaultAcceleratorDelimiter);

Parameter

bShowAll
[in] Wenn WAHR, werden alle Tastenkombinationen angezeigt. Wenn FALSE, wird nur die erste Tastenkombination angezeigt.

lpszDelimiter
[in] Eine Zeichenfolge, die zwischen Tastenkombinationen eingefügt werden soll. Dieses Trennzeichen hat keine Auswirkung, wenn nur eine Tastenkombination angezeigt wird.

Hinweise

Wenn einem Befehl standardmäßig mehrere Tastenkombinationen zugeordnet sind, wird nur die erste Tastenkombination angezeigt. Mit dieser Funktion können Sie alle Tastenkombinationen auflisten, die allen Befehlen zugeordnet sind.

Die Tastenkombinationen werden neben dem Befehl in der Menüleiste aufgeführt. Wenn alle Tastenkombinationen angezeigt werden, trennt die von lpszDelimiter bereitgestellte Zeichenfolge einzelne Tastenkombinationen.

CKeyboardManager::TranslateCharToUpper

Wandelt ein Zeichen in das obere Register um.

static UINT TranslateCharToUpper(const UINT nChar);

Parameter

Nchar
[in] Das zu konvertierende Zeichen.

Rückgabewert

Das Zeichen, das das obere Register des Eingabeparameters ist.

CKeyboardManager::UpdateAccelTable

Aktualisiert eine Tastenkombinationstabelle mit einer neuen Tastenkombinationstabelle.

BOOL UpdateAccelTable(
    CMultiDocTemplate* pTemplate,
    LPACCEL lpAccel,
    int nSize,
    CFrameWnd* pDefaultFrame = NULL);

BOOL UpdateAccelTable(
    CMultiDocTemplate* pTemplate,
    HACCEL hAccelNew,
    CFrameWnd* pDefaultFrame = NULL);

Parameter

pTemplate
[in] Ein Zeiger auf eine Dokumentvorlage.

lpAccel
[in] Ein Zeiger auf die neue Tastenkombination.

nSize
[in] Die Größe der neuen Verknüpfungstabelle.

pDefaultFrame
[in] Ein Zeiger auf das Standardrahmenfenster.

hAccelNew
[in] Ein Handle für die neue Verknüpfungstabelle.

Rückgabewert

Nonzero, wenn die Methode erfolgreich ist; andernfalls 0.

Hinweise

Verwenden Sie diese Funktion, um die vorhandene Verknüpfungstabelle durch neue Tastenkombinationen für mehrere Framefensterobjekte zu ersetzen. Die Funktion empfängt eine Dokumentvorlage als Parameter, um Zugriff auf alle Framefensterobjekte zu erhalten, die mit der angegebenen Dokumentvorlage verbunden sind.

Siehe auch

Hierarchiediagramm
Klassen
CWinAppEx-Klasse
CWinAppEx::InitKeyboardManager
Anpassen von Tastatur und Maus