Compartir a través de


Clase CHotKeyCtrl

Proporciona la funcionalidad del control común de tecla de acceso rápido de Windows.

Sintaxis

class CHotKeyCtrl : public CWnd

Miembros

Constructores públicos

Nombre Descripción
CHotKeyCtrl::CHotKeyCtrl Construye un objeto CHotKeyCtrl.

Métodos públicos

Nombre Descripción
CHotKeyCtrl::Create Crea un control de tecla de acceso rápido y lo asocia a un objeto CHotKeyCtrl.
CHotKeyCtrl::CreateEx Crea un control de tecla de acceso rápido con los estilos extendidos de Windows especificados y lo asocia a un objeto CHotKeyCtrl.
CHotKeyCtrl::GetHotKey Recupera el código de tecla virtual y las marcas de tecla modificadora de una tecla de acceso rápido de un control de tecla de acceso rápido.
CHotKeyCtrl::GetHotKeyName Recupera el nombre de tecla, en el juego de caracteres local, asignado a una tecla de acceso rápido.
CHotKeyCtrl::GetKeyName Recupera el nombre de tecla, en el juego de caracteres local, asignado al código de tecla virtual especificado.
CHotKeyCtrl::SetHotKey Establece la combinación de teclas de acceso directo de un control de tecla de acceso directo.
CHotKeyCtrl::SetRules Define las combinaciones no válidas y la combinación de modificadores predeterminada de un control de tecla de acceso directo.

Comentarios

Un "control de teclas de acceso directo" es una ventana que permite al usuario crear una tecla de acceso directo. Una "tecla de acceso directo" es una combinación de teclas que el usuario puede presionar para realizar una acción rápidamente. (Por ejemplo, un usuario puede crear una tecla de acceso directo que active una ventana determinada y la lleve al inicio del orden Z). El control de tecla de acceso directo muestra las opciones del usuario y garantiza que el usuario va a seleccionar una combinación de teclas válida.

Este control (y, por tanto, la clase CHotKeyCtrl) solo está disponible para los programas que se ejecutan en Windows 95/98 y Windows NT 3.51 y posteriores.

Cuando el usuario ha elegido una combinación de teclas, la aplicación puede recuperar la combinación de teclas especificada del control y usar el mensaje WM_SETHOTKEY para configurar la tecla de acceso directo en el sistema. Cada vez que el usuario presione la tecla de acceso directo en adelante, desde cualquier parte del sistema, la ventana especificada en el mensaje WM_SETHOTKEY recibe un mensaje WM_SYSCOMMAND que especifica SC_HOTKEY. Este mensaje activa la ventana que lo recibe. La tecla de acceso rápido sigue siendo válida hasta que se cierre la aplicación que llamó a WM_SETHOTKEY.

Este mecanismo es diferente de la compatibilidad de las teclas de acceso rápido, que depende del mensaje WM_HOTKEY y de las funciones RegisterHotKey y UnregisterHotKey de Windows.

Para obtener más información sobre cómo usar la clase CHotKeyCtrl, vea Controles y Uso de CHotKeyCtrl.

Jerarquía de herencia

CObject

CCmdTarget

CWnd

CHotKeyCtrl

Requisitos

Encabezado: afxcmn.h

CHotKeyCtrl::CHotKeyCtrl

Construye un objeto CHotKeyCtrl.

CHotKeyCtrl();

CHotKeyCtrl::Create

Crea un control de tecla de acceso rápido y lo asocia a un objeto CHotKeyCtrl.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parámetros

dwStyle
Especifica el estilo del control de tecla de acceso rápido. Aplique cualquier combinación de estilos de control. Para obtener más información, vea Estilos de control comunes en Windows SDK.

rect
Especifica el tamaño y la posición del control de tecla de acceso rápido. Puede ser un objeto CRect o una estructura RECT.

pParentWnd
Especifica la ventana primaria del control de tecla de acceso rápido, que suele ser CDialog. No debe ser NULL.

Nid
Especifica el identificador del control de tecla de acceso rápido.

Valor devuelto

Distinto de cero si la inicialización se realiza correctamente; de lo contrario, 0.

Comentarios

El objeto CHotKeyCtrl se construye en dos pasos. En primer lugar, llame al constructor y, luego, a Create, lo que crea el control de tecla de acceso rápido y lo asocia al objeto CHotKeyCtrl.

Si quiere usar estilos extendidos de Windows con el control, llame a CreateEx en lugar de a Create.

CHotKeyCtrl::CreateEx

Llame a esta función para crear un control (una ventana secundaria) y asociarlo al objeto CHotKeyCtrl.

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parámetros

dwExStyle
El valor de este parámetro se usa para especificar el estilo extendido del control que se va a crear. Para ver una lista de estilos extendidos de Windows, consulte el parámetro dwExStyle para CreateWindowEx en Windows SDK.

dwStyle
Especifica el estilo del control de tecla de acceso rápido. Aplique cualquier combinación de estilos de control. Para obtener más información, vea Estilos de control comunes en Windows SDK.

rect
Referencia a una estructura RECT que describe el tamaño y la posición de la ventana que se va a crear, en coordenadas de cliente de pParentWnd.

pParentWnd
Un puntero a la ventana que constituye el elemento primario del control.

Nid
El identificador de ventana secundaria del control.

Valor devuelto

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.

Comentarios

Use CreateEx en lugar de Create para aplicar estilos extendidos de Windows, especificados por el prefacio de estilo extendido de Windows WS_EX_.

CHotKeyCtrl::GetHotKey

Recupera el código de tecla virtual y las marcas de tecla modificadora de un método abreviado de teclado de un control de tecla de acceso rápido.

DWORD GetHotKey() const;

void GetHotKey(
    WORD& wVirtualKeyCode,
    WORD& wModifiers) const;

Parámetros

wVirtualKeyCode
[out] Código de tecla virtual del método abreviado de teclado. (Para obtener una lista de códigos de teclas virtuales estándar, vea Winuser.h).

wModifiers
[out] Combinación bit a bit (OR) de marcas que indican las teclas modificadoras en el método abreviado de teclado.

Las marcas de tecla modificadora son las siguientes:

Marca Tecla correspondiente
HOTKEYF_ALT tecla ALT
HOTKEYF_CONTROL Tecla CTRL
HOTKEYF_EXT Tecla extendida
HOTKEYF_SHIFT Tecla Mayús

Valor devuelto

En el primer método sobrecargado, un valor DWORD que contiene el código de tecla virtual y las marcas de tecla modificadora. El byte de orden inferior de la palabra de orden inferior contiene el código de tecla virtual; el byte de orden superior de la palabra de orden inferior contiene las marcas de tecla modificadora, y la palabra de orden superior es cero.

Comentarios

El código de tecla virtual y las teclas modificadoras definen en conjunto el método abreviado de teclado.

CHotKeyCtrl::GetHotKeyName

Llame a esta función miembro para obtener el nombre localizado de la tecla de acceso rápido.

CString GetHotKeyName() const;

Valor devuelto

Nombre localizado de la tecla de acceso rápido seleccionada actualmente. Si no hay ninguna tecla de acceso rápido seleccionada, GetHotKeyName devuelve una cadena vacía.

Comentarios

El nombre que devuelve esta función miembro procede del controlador de teclado. Se puede instalar un controlador de teclado sin localizar en una versión localizada de Windows y viceversa.

CHotKeyCtrl::GetKeyName

Llame a esta función miembro para obtener el nombre localizado de la tecla asignada a un código de tecla virtual especificado.

static CString GetKeyName(
    UINT vk,
    BOOL fExtended);

Parámetros

vk
Código de tecla virtual.

fExtended
Si el código de tecla virtual es una tecla extendida, TRUE; en caso contrario, FALSE.

Valor devuelto

Nombre localizado de la tecla especificada por el parámetro vk. Si la tecla no tiene ningún nombre asignado, GetKeyName devuelve una cadena vacía.

Comentarios

El nombre de tecla que devuelve esta función procede del controlador de teclado. Se puede instalar un controlador de teclado sin localizar en una versión localizada de Windows y viceversa.

Ejemplo

CString str;
str = CHotKeyCtrl::GetKeyName(VK_CONTROL, FALSE);
// str is now "Ctrl", or the localized equivalent.

CHotKeyCtrl::SetHotKey

Establece el método abreviado de teclado de un control de tecla de acceso directo.

void SetHotKey(
    WORD wVirtualKeyCode,
    WORD wModifiers);

Parámetros

wVirtualKeyCode
[in] Código de tecla virtual del método abreviado de teclado. (Para obtener una lista de códigos de teclas virtuales estándar, vea Winuser.h).

wModifiers
[in] Combinación bit a bit (OR) de marcas que indican las teclas modificadoras en el método abreviado de teclado.

Las marcas de tecla modificadora son las siguientes:

Marca Tecla correspondiente
HOTKEYF_ALT tecla ALT
HOTKEYF_CONTROL Tecla CTRL
HOTKEYF_EXT Tecla extendida
HOTKEYF_SHIFT Tecla Mayús

Comentarios

El código de tecla virtual y las teclas modificadoras definen en conjunto el método abreviado de teclado.

CHotKeyCtrl::SetRules

Llame a esta función para definir las combinaciones no válidas y la combinación de modificadores predeterminada de un control de tecla de acceso directo.

void SetRules(
    WORD wInvalidComb,
    WORD wModifiers);

Parámetros

wInvalidComb
Matriz de marcas que especifica combinaciones de teclas no válidas. Puede ser una combinación de los valores siguientes:

  • HKCOMB_A ALT

  • HKCOMB_C CTRL

  • HKCOMB_CA CTRL+ALT

  • HKCOMB_NONE (teclas sin modificar)

  • HKCOMB_S SHIFT

  • HKCOMB_SA SHIFT+ALT

  • HKCOMB_SC SHIFT+CTRL

  • HKCOMB_SCA SHIFT+CTRL+ALT

wModifiers
Matriz de marcas que especifica la combinación de teclas que se va a usar cuando el usuario escribe una combinación no válida. Para obtener más información sobre las marcas de tecla modificadora, vea GetHotKey.

Comentarios

Cuando un usuario escribe una combinación de teclas no válida, tal y como se define en las marcas especificadas en wInvalidComb, el sistema usa el operador OR para combinar las teclas especificadas por el usuario con las marcas especificadas en wModifiers. La combinación de teclas resultante se convierte en una cadena y, a continuación, se muestra en el control de tecla de acceso directo.

Consulte también

CWnd (clase)
Gráfico de jerarquías