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

CObject

CKeyboardManager

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 CKeyboardManagery 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