CKeyboardManager, classe

Gère les tables de touches de raccourci pour la fenêtre frame principale et les fenêtres frames enfants.

Syntaxe

class CKeyboardManager : public CObject

Membres

Constructeurs publics

Nom Description
CKeyboardManager ::CKeyboardManager Construit un objet CKeyboardManager.

Méthodes publiques

Nom Description
CKeyboardManager ::CleanUp Efface les tables de touches de raccourci.
CKeyboardManager ::FindDefaultAccelerator Récupère la touche de raccourci par défaut pour la commande et la fenêtre spécifiées.
CKeyboardManager ::IsKeyHandled Détermine si une clé est gérée par la table d’accélérateurs.
CKeyboardManager ::IsKeyPrintable Indique si un caractère est imprimable.
CKeyboardManager ::IsShowAllAccelerators Indique si les menus affichent toutes les touches de raccourci pour une commande ou uniquement la touche de raccourci par défaut.
CKeyboardManager ::LoadState Charge les tables de touches de raccourci à partir du Registre Windows.
CKeyboardManager ::ResetAll Recharge les tables de touches de raccourci à partir de la ressource d’application.
CKeyboardManager ::SaveState Enregistre les tables de touches de raccourci dans le Registre Windows.
CKeyboardManager ::ShowAllAccelerators Spécifie si l’infrastructure affiche toutes les touches de raccourci pour toutes les commandes ou une seule touche de raccourci pour chaque commande. Cette méthode n’affecte pas les commandes qui n’ont qu’une seule touche de raccourci associée.
CKeyboardManager ::TranslateCharToUpper Convertit un caractère en son registre supérieur.
CKeyboardManager ::UpdateAccelTable Met à jour une table de touches de raccourci avec une nouvelle table de touches de raccourci.

Notes

Les membres de cette classe vous permettent d’enregistrer et de charger des tables de touches de raccourci dans le Registre Windows, d’utiliser un modèle pour mettre à jour les tables de touches de coupe courte et de rechercher la touche de raccourci par défaut d’une commande dans une fenêtre frame. En outre, l’objet CKeyboardManager vous permet de contrôler la façon dont les touches de raccourci sont affichées à l’utilisateur.

Vous ne devez pas créer un CKeyboardManager objet manuellement. Elle sera créée automatiquement par l’infrastructure de votre application. Toutefois, vous devez appeler CWinAppEx ::InitKeyboardManager pendant le processus d’initialisation de votre application. Pour obtenir un pointeur vers le gestionnaire de clavier de votre application, appelez CWinAppEx ::GetKeyboardManager.

Exemple

L’exemple suivant montre comment récupérer un pointeur vers un CKeyboardManager objet à partir d’une CWinAppEx classe et comment afficher toutes les touches de raccourci associées aux commandes de menu. Cet extrait de code fait partie de l’exemple Pages personnalisées.

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

Hiérarchie d'héritage

CObject

CKeyboardManager

Spécifications

En-tête : afxkeyboardmanager.h

CKeyboardManager ::CKeyboardManager

Construit un objet CKeyboardManager.

CKeyboardManager();

Notes

Dans la plupart des cas, vous n’avez pas besoin de créer un CKeyboardManager fichier directement. Par défaut, le framework en crée un pour vous. Pour obtenir un pointeur vers le CKeyboardManagerpointeur, appelez CWinAppEx ::GetKeyboardManager. Si vous en créez un manuellement, vous devez l’initialiser avec la méthode CWinAppEx ::InitKeyboardManager.

CKeyboardManager ::CleanUp

Libère les CKeyboardManager ressources et efface tous les mappages de touches de raccourci.

static void CleanUp();

Notes

Pour plus d’informations sur les touches de raccourci, consultez Personnalisation du clavier et de la souris.

Vous n’avez pas besoin d’appeler cette fonction lorsque votre application quitte, car l’infrastructure l’appelle automatiquement pendant la sortie de l’application.

CKeyboardManager ::FindDefaultAccelerator

Récupère la touche de raccourci par défaut pour la commande et la fenêtre spécifiées.

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

Paramètres

uiCmd
[in] ID de commande.

str
[out] Référence à un objet CString.

pWndFrame
[in] Pointeur vers une fenêtre frame.

bIsDefaultFrame
[in] Spécifie si la fenêtre frame est la fenêtre frame par défaut.

Valeur de retour

Différent de zéro si le raccourci est trouvé ; sinon 0.

Notes

Cette méthode recherche la commande spécifiée par uiCmd et récupère la touche de raccourci par défaut. Ensuite, la méthode prend la chaîne associée à cette touche de raccourci et écrit la valeur dans le paramètre str .

CKeyboardManager ::IsKeyHandled

Détermine si la clé spécifiée est gérée par la classe CKeyboardManager.

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

Paramètres

nKey
[in] Clé à vérifier.

fVirt
[in] Spécifie le comportement de la touche de raccourci. Pour obtenir la liste des valeurs possibles, consultez Structure ACCEL.

pWndFrame
[in] Fenêtre frame. Cette méthode détermine si une touche de raccourci est gérée dans ce cadre.

bIsDefaultFrame
[in] Paramètre booléen qui indique si pWndFrame est la fenêtre de trame par défaut.

Valeur de retour

TRUE si la touche de raccourci est gérée. FALSE si la clé n’est pas gérée ou si pWndFrame a la valeur NULL.

Notes

Les paramètres d’entrée doivent correspondre à l’entrée de la table accélérateur à la fois pour nKey et fVirt afin de déterminer si une touche de raccourci est gérée dans pWndFrame.

CKeyboardManager ::IsKeyPrintable

Indique si un caractère est imprimable.

static BOOL __stdcall IsKeyPrintable(const UINT nChar);

Paramètres

nChar
[in] Caractère vérifié par cette méthode.

Valeur de retour

Différent de zéro si le caractère est imprimable, zéro si ce n’est pas le cas.

Notes

Cette méthode échoue si un appel à GetKeyboardState échoue.

CKeyboardManager ::IsShowAllAccelerators

Indique si les menus affichent toutes les touches de raccourci associées aux commandes de menu ou uniquement les touches de raccourci par défaut.

static BOOL IsShowAllAccelerators();

Valeur de retour

Différent de zéro si l’application répertorie toutes les touches de raccourci pour les commandes de menu ; 0 si l’application affiche uniquement les touches de raccourci par défaut.

Notes

L’application répertorie les touches de raccourci pour les commandes de menu dans la barre de menus. Utilisez la fonction CKeyboardManager ::ShowAllAccelerators pour contrôler si l’application répertorie toutes les touches de raccourci ou uniquement les touches de raccourci par défaut.

CKeyboardManager ::LoadState

Charge les tables de touches de raccourci à partir du Registre Windows.

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

Paramètres

lpszProfileName
[in] Chemin d’accès au Registre où CKeyboardManager les données sont enregistrées.

pDefaultFrame
[in] Pointeur vers une fenêtre frame à utiliser comme fenêtre par défaut.

Valeur de retour

Différent de zéro si l’état a été chargé correctement ou 0 sinon.

Notes

Si le paramètre lpszProfileName a la valeur NULL, cette méthode vérifie l’emplacement du Registre par défaut pour les CKeyboardManager données. L’emplacement du Registre par défaut est spécifié par la classe CWinAppEx. Les données doivent être précédemment écrites avec la méthode CKeyboardManager ::SaveState.

Si vous ne spécifiez pas de fenêtre par défaut, la fenêtre de trame principale de votre application sera utilisée.

CKeyboardManager ::ResetAll

Recharge les tables de touches de raccourci à partir de la ressource d’application.

void ResetAll();

Notes

Cette fonction efface les raccourcis stockés dans l’instance CKeyboardManager . Il recharge ensuite l’état du gestionnaire de clavier à partir de la ressource d’application.

CKeyboardManager ::SaveState

Enregistre les tables de touches de raccourci dans le Registre Windows.

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

Paramètres

lpszProfileName
[in] Chemin d’accès au Registre pour l’enregistrement de l’état CKeyboardManager .

pDefaultFrame
[in] Pointeur vers une fenêtre frame qui devient la fenêtre par défaut.

Valeur de retour

Différent de zéro si l’état du gestionnaire de clavier a été enregistré correctement, ou 0 sinon.

Notes

Si le paramètre lpszProfileName a la valeur NULL, cette méthode écrit l’état CKeyboardManager à l’emplacement par défaut spécifié par la classe CWinAppEx. Si vous spécifiez un emplacement, vous pouvez charger les données ultérieurement à l’aide de la méthode CKeyboardManager ::LoadState.

Si vous ne spécifiez pas de fenêtre par défaut, la fenêtre cadre principale sera utilisée comme fenêtre par défaut.

CKeyboardManager ::ShowAllAccelerators

Affiche toutes les touches de raccourci associées aux commandes de menu.

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

Paramètres

bShowAll
[in] Si la valeur est TRUE, toutes les touches de raccourci sont affichées. Si la valeur est FALSE, seule la première touche de raccourci s’affiche.

lpszDelimiter
[in] Chaîne à insérer entre les touches de raccourci. Ce délimiteur n’a aucun effet si une seule touche de raccourci est affichée.

Notes

Par défaut, si une commande comporte plusieurs touches de raccourci associées, seule la première touche de raccourci s’affiche. Cette fonction vous permet de répertorier toutes les touches de raccourci associées à toutes les commandes.

Les touches de raccourci sont répertoriées en regard de la commande dans la barre de menus. Si toutes les touches de raccourci sont affichées, la chaîne fournie par lpszDelimiter sépare les touches de raccourci individuelles.

CKeyboardManager ::TranslateCharToUpper

Convertit un caractère en son registre supérieur.

static UINT TranslateCharToUpper(const UINT nChar);

Paramètres

nChar
[in] Caractère à convertir.

Valeur de retour

Caractère qui est le registre supérieur du paramètre d’entrée.

CKeyboardManager ::UpdateAccelTable

Met à jour une table de touches de raccourci avec une nouvelle table de touches de raccourci.

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

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

Paramètres

pTemplate
[in] Pointeur vers un modèle de document.

lpAccel
[in] Pointeur vers la nouvelle touche de raccourci.

nSize
[in] Taille du nouveau tableau de raccourcis.

pDefaultFrame
[in] Pointeur vers la fenêtre frame par défaut.

hAccelNew
[in] Handle de la nouvelle table de raccourcis.

Valeur de retour

Différent de zéro si la méthode réussit ; sinon 0.

Notes

Utilisez cette fonction pour remplacer la table de raccourcis existante par de nouvelles touches de raccourci pour plusieurs objets de fenêtre frame. La fonction reçoit un modèle de document en tant que paramètre pour obtenir l’accès à tous les objets de fenêtre frame connectés au modèle de document donné.

Voir aussi

Graphique hiérarchique
Classes
CWinAppEx, classe
CWinAppEx ::InitKeyboardManager
Personnalisation du clavier et de la souris