Win32 API. Функции и сообщения ввода информации с клавиатуры - Функция RegisterHotKey

ОГЛАВЛЕНИЕ

Функция RegisterHotKey

(РегистрацияГрячейКлавиши)

Функция RegisterHotKey определяет комбинацию "горячая" клавиша для текущего потока.

Синтаксис

BOOL RegisterHotKey
(
HWND hWnd, // окно, которое принимает уведомление "горячей" клавиши
int id, // идентификатор "горячей" клавиши
UINT fsModifiers, // флажки модификации клавиш
UINT vk // код виртуальной клавиши
);

Параметры
hWnd
Идентифицирует окно, которое примет сообщения WM_HOTKEY, сгенерированные комбинацией "горячая" клавиша. Если этот параметр - ПУСТО (NULL), сообщения WM_HOTKEY посылаются в очередь сообщений вызывающего потока и должны быть обработаны в цикле сообщений.
id
Определяет идентификатор комбинации "горячая" клавиша. Никакая другая "горячая" клавиша в вызывающем потоке не может иметь тот же самый идентификатор. Прикладная программа должна определить значение в диапазоне от 0x0000 до 0xBFFF. Динамически подключаемая библиотека DLL совместного использования должна определить значение в диапазоне от 0xC000 до 0xFFFF (диапазон, возвращаемый функцией GlobalAddAtom). Чтобы избежать конфликтов с идентификаторами "горячей" клавиши, определенными другими разделяемыми DLL, динамически подключаемая библиотека, чтобы получить идентификатор "горячей" клавиши, должна использовать функцию GlobalAddAtom.
fsModifiers
Определяет клавиши, которые должны быть нажаты в комбинации с клавишей, заданной параметром nVirtKey, чтобы генерировать сообщение WM_HOTKEY. Параметр fsModifiers может быть комбинацией следующих значений:

  • MOD_ALT - Любая клавиша ALT должна удерживаться нажатой.
  • MOD_CONTROL - Любая клавиша CTRL должна удерживаться нажатой.
  • MOD_SHIFT - Любая клавиша SHIFT должна удерживаться нажатой.

vk
Определяет код виртуальной клавиши комбинации "горячая" клавиша.

Возвращаемые значения
Если функция завершилась успешно, возвращается значение отличное от нуля.
Если функция потерпела неудачу, возвращаемое значение - ноль.

Замечания
Когда клавиша нажимается, система ищет соответствие во всех комбинациях "горячая" клавиша потока. После обнаружения соответствия, система посылает сообщение WM_HOTKEY в очередь сообщений потока, который зарегистрировал комбинацию "горячая" клавиша. Это сообщение посылается в начало очереди, так что оно удаляется следующим повтором цикла сообщений.
Эта функция не может связывать комбинацию "горячая" клавиша с окном, созданным другим потоком.
Функция RegisterHotKey терпит неудачу, если нажатия клавиш, определенные для "горячей" клавиши были уже зарегистрированы другой "горячей" клавишей.
Если окно, идентифицированное параметром hWnd, уже зарегистрировало комбинацию "горячая" клавиша с тем же самым идентификатором, как тот, что определен параметром id, новые значения для параметров fsModifiers и vk заменяют предварительно заданные величины для этих параметров.

Смотри также
GlobalAddAtom, UnregisterHotKey, WM_HOTKEY

Размещение и совместимость RegisterHotKey

Windows NT				Да 
Win95 Да
Win32s Нет
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode Нет
Замечания по платформе Не имеется