(РегистрацияГрячейКлавиши)
Функция 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 может быть комбинацией следующих значений:
vk
Определяет код виртуальной клавиши комбинации "горячая" клавиша.
Возвращаемые значения
Если функция завершилась успешно, возвращается значение отличное от нуля.
Если функция потерпела неудачу, возвращаемое значение - ноль.
Замечания
Когда клавиша нажимается, система ищет соответствие во всех комбинациях "горячая" клавиша потока. После обнаружения соответствия, система посылает сообщение WM_HOTKEY в очередь сообщений потока, который зарегистрировал комбинацию "горячая" клавиша. Это сообщение посылается в начало очереди, так что оно удаляется следующим повтором цикла сообщений.
Эта функция не может связывать комбинацию "горячая" клавиша с окном, созданным другим потоком.
Функция RegisterHotKey терпит неудачу, если нажатия клавиш, определенные для "горячей" клавиши были уже зарегистрированы другой "горячей" клавишей.
Если окно, идентифицированное параметром hWnd, уже зарегистрировало комбинацию "горячая" клавиша с тем же самым идентификатором, как тот, что определен параметром id, новые значения для параметров fsModifiers и vk заменяют предварительно заданные величины для этих параметров.
Смотри также
GlobalAddAtom, UnregisterHotKey, WM_HOTKEY
Размещение и совместимость RegisterHotKey
Windows NT Да Win95 Да Win32s Нет Импортируемая библиотека user32.lib Заголовочный файл winuser.h Unicode Нет Замечания по платформе Не имеется