Класс CHotKeyCtrl

Предоставляет функциональные возможности стандартного элемента управления "горячая клавиша" Windows.

Синтаксис

class CHotKeyCtrl : public CWnd

Участники

Открытые конструкторы

Имя Описание
CHotKeyCtrl::CHotKeyCtrl Формирует объект CHotKeyCtrl.

Открытые методы

Имя Описание
CHotKeyCtrl::Create Создает элемент управления горячим ключом и присоединяет его к объекту CHotKeyCtrl .
CHotKeyCtrl::CreateEx Создает элемент управления горячим ключом с указанными расширенными стилями Windows и присоединяет его к объекту CHotKeyCtrl .
CHotKeyCtrl::GetHotKey Извлекает код виртуального ключа и флаги модификатора горячего ключа из элемента управления горячим ключом.
CHotKeyCtrl::GetHotKeyName Извлекает имя ключа в локальном наборе символов, назначенном горячему ключу.
CHotKeyCtrl::GetKeyName Извлекает имя ключа в локальном наборе символов, назначенном указанному коду виртуального ключа.
CHotKeyCtrl::SetHotKey Задает сочетание горячих клавиш для элемента управления горячим ключом.
CHotKeyCtrl::SetRules Определяет недопустимые сочетания и сочетание модификаторов по умолчанию для элемента управления горячим ключом.

Замечания

Элемент управления "горячим ключом" — это окно, которое позволяет пользователю создавать горячий ключ. "Горячий ключ" — это сочетание клавиш, которое пользователь может нажать, чтобы быстро выполнить действие. (Например, пользователь может создать горячий ключ, который активирует заданное окно и приведет его в начало порядка Z.) Элемент управления горячим ключом отображает выбор пользователя и гарантирует, что пользователь выбирает допустимое сочетание ключей.

Этот элемент управления (и, следовательно CHotKeyCtrl , класс) доступен только для программ под управлением Windows 95/98 и Windows NT версии 3.51 и более поздних версий.

Если пользователь выбрал сочетание клавиш, приложение может получить указанное сочетание ключей из элемента управления и использовать сообщение WM_SETHOTKEY для настройки горячего ключа в системе. Когда пользователь нажимает горячий ключ после этого, из любой части системы окно, указанное в сообщении WM_SETHOTKEY, получает WM_SYSCOMMAND сообщение, указывающее SC_HOTKEY. Это сообщение активирует окно, которое получает его. Горячий ключ остается допустимым до тех пор, пока приложение, вызываемое WM_SETHOTKEY, не завершится.

Этот механизм отличается от поддержки горячего ключа, зависящего от WM_HOTKEY сообщения и функций Windows RegisterHotKey и UnregisterHotKey.

Дополнительные сведения об использовании CHotKeyCtrlсм. в разделе "Элементы управления " и "Использование CHotKeyCtrl".

Иерархия наследования

CObject

CCmdTarget

CWnd

CHotKeyCtrl

Требования

Заголовок: afxcmn.h

CHotKeyCtrl::CHotKeyCtrl

Формирует объект CHotKeyCtrl.

CHotKeyCtrl();

CHotKeyCtrl::Create

Создает элемент управления горячим ключом и присоединяет его к объекту CHotKeyCtrl .

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

Параметры

dwStyle
Задает стиль элемента управления горячим ключом. Применение любого сочетания стилей элементов управления. Дополнительные сведения см . в статье "Общие стили элементов управления" в пакете SDK для Windows.

rect
Указывает размер и позицию элемента управления горячим ключом. Это может быть объект CRect или структура RECT.

pParentWnd
Указывает родительское окно элемента управления горячим ключом, обычно CDialog. Он не должен иметь значение NULL.

Nid
Указывает идентификатор элемента управления горячим ключом.

Возвращаемое значение

Ненулевое значение, если инициализация была успешной; в противном случае — 0.

Замечания

Вы создаете CHotKeyCtrl объект на двух шагах. Сначала вызовите конструктор, а затем вызов Create, который создает элемент управления горячим ключом и присоединяет его к объекту CHotKeyCtrl .

Если вы хотите использовать расширенные стили окон с элементом управления, вызовите CreateEx вместо Createэтого.

CHotKeyCtrl::CreateEx

Вызовите эту функцию, чтобы создать элемент управления (дочернее окно) и связать его с CHotKeyCtrl объектом.

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

Параметры

dwExStyle
Задает расширенный стиль создаваемого элемента управления. Список расширенных стилей Windows см. в параметре dwExStyle для CreateWindowEx в пакете SDK для Windows.

dwStyle
Задает стиль элемента управления горячим ключом. Применение любого сочетания стилей элементов управления. Дополнительные сведения см. в разделе "Общие стили элементов управления" в пакете SDK для Windows.

rect
Ссылка на структуру RECT , описывающую размер и положение создаваемого окна в координатах клиента pParentWnd.

pParentWnd
Указатель на окно, которое является родительским элементом элемента управления.

Nid
Идентификатор дочернего окна элемента управления.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Используйте CreateEx вместо создания расширенные стили Windows, указанные предисловием расширенного стиля Windows WS_EX_.

CHotKeyCtrl::GetHotKey

Извлекает код виртуального ключа и флаги модификатора сочетания клавиш из элемента управления горячим ключом.

DWORD GetHotKey() const;

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

Параметры

wVirtualKeyCode
[out] Код виртуального ключа сочетания клавиш. Список стандартных кодов виртуальных ключей см. в статье Winuser.h.

wModifiers
[out] Побитовое сочетание флагов (OR), указывающее клавиши модификатора в сочетании клавиш.

Флаги модификатора приведены следующим образом:

Флаг Соответствующий ключ
HOTKEYF_ALT ALT - клавиша
HOTKEYF_CONTROL КЛАВИША CTRL
HOTKEYF_EXT Расширенный ключ
HOTKEYF_SHIFT КЛАВИША SHIFT

Возвращаемое значение

В первом перегруженном методе DWORD, который содержит код виртуального ключа и флаги модификатора. Байт низкого порядка слова с низким порядком содержит код виртуального ключа, байт с высоким порядком слова с низким порядком содержит флаги модификатора, а слово с высоким порядком равно нулю.

Замечания

Код виртуального ключа и клавиши модификатора вместе определяют сочетание клавиш.

CHotKeyCtrl::GetHotKeyName

Вызовите эту функцию-член, чтобы получить локализованное имя горячего ключа.

CString GetHotKeyName() const;

Возвращаемое значение

Локализованное имя выбранного горячего ключа. Если нет выбранного горячего ключа, GetHotKeyName возвращает пустую строку.

Замечания

Имя, которое возвращает эта функция-член, поступает из драйвера клавиатуры. Драйвер клавиатуры, не локализованный, можно установить в локализованной версии Windows и наоборот.

CHotKeyCtrl::GetKeyName

Вызовите эту функцию-член, чтобы получить локализованное имя ключа, назначенного указанному коду виртуального ключа.

static CString GetKeyName(
    UINT vk,
    BOOL fExtended);

Параметры

Vk
Код виртуального ключа.

fExtended
Если код виртуального ключа является расширенным ключом, true; в противном случае ЗНАЧЕНИЕ FALSE.

Возвращаемое значение

Локализованное имя ключа, указанного параметром vk . Если ключ не имеет сопоставленного имени, GetKeyName возвращает пустую строку.

Замечания

Имя ключа, возвращаемое этой функцией, происходит из драйвера клавиатуры, поэтому вы можете установить не локализованный драйвер клавиатуры в локализованной версии Windows и наоборот.

Пример

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

CHotKeyCtrl::SetHotKey

Задает сочетание клавиш для элемента управления горячим ключом.

void SetHotKey(
    WORD wVirtualKeyCode,
    WORD wModifiers);

Параметры

wVirtualKeyCode
[in] Код виртуального ключа сочетания клавиш. Список стандартных кодов виртуальных ключей см. в статье Winuser.h.

wModifiers
[in] Побитовое сочетание флагов (OR), указывающее клавиши модификатора в сочетании клавиш.

Флаги модификатора приведены следующим образом:

Флаг Соответствующий ключ
HOTKEYF_ALT ALT - клавиша
HOTKEYF_CONTROL КЛАВИША CTRL
HOTKEYF_EXT Расширенный ключ
HOTKEYF_SHIFT КЛАВИША SHIFT

Замечания

Код виртуального ключа и клавиши модификатора вместе определяют сочетание клавиш.

CHotKeyCtrl::SetRules

Вызовите эту функцию, чтобы определить недопустимые сочетания и сочетание модификаторов по умолчанию для элемента управления горячим ключом.

void SetRules(
    WORD wInvalidComb,
    WORD wModifiers);

Параметры

wInvalidComb
Массив флагов, указывающих недопустимые сочетания ключей. Это может быть сочетание следующих значений:

  • HKCO МБ_A ALT

  • HKCO МБ_C CTRL

  • HKCO МБ_CA CTRL+ALT

  • HKCO МБ_NONE неизмененные ключи

  • HKCO МБ_S SHIFT

  • HKCO МБ_SA SHIFT+ALT

  • HKCO МБ_SC SHIFT+CTRL

  • HKCO МБ_SCA SHIFT+CTRL+ALT

wModifiers
Массив флагов, указывающий сочетание ключей, используемое при вводе пользователя недопустимого сочетания. Дополнительные сведения о флагах модификатора см. в разделе GetHotKey.

Замечания

Когда пользователь вводит недопустимое сочетание ключей, как определено флагами, указанными в wInvalidComb, система использует оператор OR для объединения ключей, введенных пользователем, с флагами, указанными в wModifiers. Результирующее сочетание клавиш преобразуется в строку, а затем отображается в элементе управления горячим ключом.

См. также

Класс CWnd
Диаграмма иерархии