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
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 CKeyboardManager
CWinAppEx::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
[Eingabe] 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 Hauptrahmenfenster 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 Hauptrahmenfenster 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