CKeyboardManager (clase)
Administra las tablas de teclas de método abreviado de la ventana de marco principal y las ventanas de marco secundarias.
Sintaxis
class CKeyboardManager : public CObject
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CKeyboardManager::CKeyboardManager | Construye un objeto CKeyboardManager . |
Métodos públicos
Nombre | Descripción |
---|---|
CKeyboardManager::CleanUp | Borra las tablas de teclas de método abreviado. |
CKeyboardManager::FindDefaultAccelerator | Recupera la tecla de método abreviado predeterminada para el comando y la ventana especificados. |
CKeyboardManager::IsKeyHandled | Determina si la tabla del acelerador controla una clave. |
CKeyboardManager::IsKeyPrintable | Indica si se puede imprimir un carácter. |
CKeyboardManager::IsShowAllAccelerators | Indica si los menús muestran todas las teclas de método abreviado de un comando o solo la tecla de método abreviado predeterminada. |
CKeyboardManager::LoadState | Carga las tablas de teclas de método abreviado del Registro de Windows. |
CKeyboardManager::ResetAll | Vuelve a cargar las tablas de teclas de método abreviado del recurso de la aplicación. |
CKeyboardManager::SaveState | Guarda las tablas de teclas de método abreviado en el Registro de Windows. |
CKeyboardManager::ShowAllAccelerators | Especifica si el marco muestra todas las teclas de método abreviado de todos los comandos o una sola tecla de método abreviado para cada comando. Este método no afecta a los comandos que solo tienen una tecla de método abreviado asociada. |
CKeyboardManager::TranslateCharToUpper | Convierte un carácter en su registro superior. |
CKeyboardManager::UpdateAccelTable | Novedades una tabla de teclas de método abreviado con una nueva tabla de teclas de método abreviado. |
Comentarios
Los miembros de esta clase permiten guardar y cargar tablas de teclas de método abreviado en el Registro de Windows, usar una plantilla para actualizar las tablas de teclas de corte corto y buscar la tecla de método abreviado predeterminada para un comando en una ventana de marco. Además, el objeto CKeyboardManager
permite controlar cómo se muestran las teclas de método abreviado al usuario.
No debe crear un objeto CKeyboardManager
manualmente. El marco de la aplicación lo creará automáticamente. Sin embargo, debe llamar a CWinAppEx::InitKeyboardManager durante el proceso de inicialización de la aplicación. Para obtener un puntero que apunte al administrador de teclado para la aplicación, llame a CWinAppEx::GetKeyboardManager.
Ejemplo
En el ejemplo siguiente se muestra cómo recuperar un puntero a un objeto CKeyboardManager
de una clase CWinAppEx
y cómo mostrar todas las teclas de método abreviado asociadas a los comandos de menú. Este fragmento de código forma parte del ejemplo de páginas personalizadas.
// The GetKeyboardManager method is inherited from the CWinAppEx class.
CKeyboardManager *cKeyboardManager = GetKeyboardManager();
cKeyboardManager->ShowAllAccelerators();
Jerarquía de herencia
Requisitos
Encabezado: afxkeyboardmanager.h
CKeyboardManager::CKeyboardManager
Construye un objeto CKeyboardManager
.
CKeyboardManager();
Comentarios
En la mayoría de los casos, no es necesario crear una clase CKeyboardManager
directamente. De forma predeterminada, el marco crea una automáticamente. Para obtener un puntero a CKeyboardManager
, llame a CWinAppEx::GetKeyboardManager. Si crea una manualmente, debe inicializarla con el método CWinAppEx::InitKeyboardManager.
CKeyboardManager::CleanUp
Libera los recursos CKeyboardManager
y borra todas las asignaciones de teclas de método abreviado.
static void CleanUp();
Comentarios
Para obtener más información sobre las teclas de método abreviado, vea Teclado y Personalización del mouse.
No es necesario llamar a esta función cuando se cierra la aplicación porque el marco lo llama automáticamente durante la salida de la aplicación.
CKeyboardManager::FindDefaultAccelerator
Recupera la tecla de método abreviado predeterminada para el comando y la ventana especificados.
static BOOL FindDefaultAccelerator(
UINT uiCmd,
CString& str,
CFrameWnd* pWndFrame,
BOOL bIsDefaultFrame);
Parámetros
uiCmd
[in] Identificador del comando.
str
[out] Referencia a un objeto CString
.
pWndFrame
[in] Puntero a una ventana de marco.
bIsDefaultFrame
[in] Especifica si la ventana de marco es la ventana de marco predeterminada.
Valor devuelto
Distinto de cero si se encuentra el acceso directo; de lo contrario, 0.
Comentarios
Este método busca el comando especificado por uiCmd y recupera la tecla de método abreviado predeterminado. A continuación, el método toma la cadena asociada a esta tecla de método abreviado y escribe el valor en el parámetro str.
CKeyboardManager::IsKeyHandled
Determina si la clave especificada se controla mediante la clase CKeyboardManager.
static BOOL __stdcall IsKeyHandled(
WORD nKey,
BYTE fVirt,
CFrameWnd* pWndFrame,
BOOL bIsDefaultFrame);
Parámetros
nKey
[in] Clave que se va a comprobar.
fVirt
[in] Especifica el comportamiento de la tecla de método abreviado. Para una lista de valores posibles, consulte Estructura ACCEL.
pWndFrame
[in] Una ventana de marco MDI Este método determina si se controla una tecla de método abreviado en este marco.
bIsDefaultFrame
[in] Parámetro booleano que indica si pWndFrame es la ventana de marco predeterminada.
Valor devuelto
TRUE si se controla la tecla de método abreviado. FALSE si la clave no se controla o si pWndFrame es NULL.
Comentarios
Los parámetros de entrada deben coincidir con la entrada de la tabla de aceleradores tanto para nKey como fVirt para determinar si se controla una tecla de método abreviado en pWndFrame.
CKeyboardManager::IsKeyPrintable
Indica si se puede imprimir un carácter.
static BOOL __stdcall IsKeyPrintable(const UINT nChar);
Parámetros
nChar
[in] Carácter que comprueba este método.
Valor devuelto
Distinto de cero si el carácter es imprimible, cero si no lo es.
Comentarios
Este método produce un error si se produce un error en una llamada a GetKeyboardState.
CKeyboardManager::IsShowAllAccelerators
Indica si los menús muestran todas las teclas de método abreviado asociadas a los comandos de menú o solo las teclas de método abreviado predeterminadas.
static BOOL IsShowAllAccelerators();
Valor devuelto
Distinto de cero si la aplicación muestra todas las teclas de método abreviado para los comandos de menú; 0 si la aplicación muestra solo las teclas de método abreviado predeterminadas.
Comentarios
La aplicación enumera las teclas de método abreviado para los comandos de menú en la barra de menús. Use la función CKeyboardManager::ShowAllAccelerators para controlar si la aplicación enumera todas las teclas de método abreviado o solo las teclas de método abreviado predeterminados.
CKeyboardManager::LoadState
Carga las tablas de teclas de método abreviado del Registro de Windows.
BOOL LoadState(
LPCTSTR lpszProfileName = NULL,
CFrameWnd* pDefaultFrame = NULL);
Parámetros
lpszProfileName
[in] Ruta de acceso del Registro donde se guardan los datos CKeyboardManager
.
pDefaultFrame
[in] Puntero a una ventana de marco que se va a usar como ventana predeterminada.
Valor devuelto
Distinto de cero si el estado se cargó correctamente; de lo contrario, 0.
Comentarios
Si el parámetro lpszProfileName es NULL, este método comprueba la ubicación predeterminada del Registro de los datos CKeyboardManager
. La ubicación predeterminada del Registro se especifica mediante la clase CWinAppEx. Los datos se deben escribir previamente con el método CKeyboardManager::SaveState.
Si no especifica una ventana predeterminada, se usará la ventana de marco principal de la aplicación.
CKeyboardManager::ResetAll
Vuelve a cargar las tablas de teclas de método abreviado del recurso de la aplicación.
void ResetAll();
Comentarios
Esta función borra los accesos directos almacenados en la instancia de CKeyboardManager
. A continuación, volverá a cargar el estado del administrador de teclado desde el recurso de la aplicación.
CKeyboardManager::SaveState
Guarda las tablas de teclas de método abreviado en el Registro de Windows.
BOOL SaveState(
LPCTSTR lpszProfileName = NULL,
CFrameWnd* pDefaultFrame = NULL);
Parámetros
lpszProfileName
[in] Ruta de acceso del Registro para guardar el estado CKeyboardManager
.
pDefaultFrame
[in] Puntero a una ventana de marco que se convierte en la ventana predeterminada.
Valor devuelto
Distinto de cero si el estado del administrador de teclado se guardó correctamente o 0 de lo contrario.
Comentarios
Si el parámetro lpszProfileName es NULL, este método escribirá el estado CKeyboardManager
en la ubicación predeterminada especificada por la clase CWinAppEx. Si especifica una ubicación, puede cargar los datos más adelante mediante el método CKeyboardManager::LoadState.
Si no especifica una ventana predeterminada, la ventana de marco principal se usará como ventana predeterminada.
CKeyboardManager::ShowAllAccelerators
Muestra todas las teclas de método abreviado asociadas a los comandos de menú.
static void ShowAllAccelerators(
BOOL bShowAll = TRUE,
LPCTSTR lpszDelimiter = _afxDefaultAcceleratorDelimiter);
Parámetros
bShowAll
[in] Si es TRUE, se mostrarán todas las teclas de método abreviado. Si es FALSE, solo se mostrará la primera tecla de método abreviado.
lpszDelimiter
[in] Cadena que se va a insertar entre teclas de método abreviado. Este delimitador no tiene ningún efecto si solo se muestra una tecla de método abreviado.
Comentarios
De forma predeterminada, si un comando tiene más de una tecla de método abreviado asociada, solo se mostrará la primera tecla de método abreviado. Esta función permite enumerar todas las teclas de método abreviado asociadas a todos los comandos.
Las teclas de método abreviado se mostrarán junto al comando en la barra de menús. Si se muestran todas las teclas de método abreviado, la cadena proporcionada por lpszDelimiter separará las teclas de método abreviado individuales.
CKeyboardManager::TranslateCharToUpper
Convierte un carácter en su registro superior.
static UINT TranslateCharToUpper(const UINT nChar);
Parámetros
nChar
[in] Carácter que se va a convertir.
Valor devuelto
Carácter que es el registro superior del parámetro de entrada.
CKeyboardManager::UpdateAccelTable
Novedades una tabla de teclas de método abreviado con una nueva tabla de teclas de método abreviado.
BOOL UpdateAccelTable(
CMultiDocTemplate* pTemplate,
LPACCEL lpAccel,
int nSize,
CFrameWnd* pDefaultFrame = NULL);
BOOL UpdateAccelTable(
CMultiDocTemplate* pTemplate,
HACCEL hAccelNew,
CFrameWnd* pDefaultFrame = NULL);
Parámetros
pTemplate
[in] Puntero a una plantilla de documento.
lpAccel
[in] Puntero a la nueva tecla de método abreviado.
nSize
[in] Tamaño de la nueva tabla de acceso directo.
pDefaultFrame
[in] Puntero a la ventana de marco predeterminada.
hAccelNew
[in] Identificador de la nueva tabla de acceso directo.
Valor devuelto
Distinto de cero si el método es correcto; en caso contrario, 0.
Comentarios
Use esta función para reemplazar la tabla de método abreviado existente por nuevas teclas de método abreviado para varios objetos de ventana de marco. La función recibe una plantilla de documento como parámetro para obtener acceso a todos los objetos de ventana de marco conectados a la plantilla de documento determinada.
Consulte también
Gráfico de jerarquías
Clases
CWinAppEx (clase)
CWinAppEx::InitKeyboardManager
Personalización del teclado y del mouse