10.16.1.18 - Функция 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 может быть комбинацией следующих значений:

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

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

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

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

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

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

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Владимир Соковиков - 06.08.2002