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
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 CKeyboardManager
pointeur, 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