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


Сообщение WM_SETHOTKEY

Прикладная программа посылает сообщение WM_SETHOTKEY окну, чтобы связать комбинацию "горячая" клавиша с окном. Когда пользователь нажимает комбинацию "горячая" клавиша, система активизирует окно.

Синтаксис

WM_SETHOTKEY
wParam = (WPARAM) MAKEWORD (vkey, modifiers)
// код виртуальной клавиши и
// модификаторы горячих клавиш
lParam = 0;// не используется, должно быть нуль

Параметры
vkey
Значение wParam. Определяет код виртуальной клавиши и модификаторы комбинаций "горячая" клавиша, которые связаны с окном. Код виртуальной клавиши находится в младшем байте параметра, а флажки модификатора находятся в старшем байте. Установка этого параметра в значение ПУСТО (NULL) удаляет комбинацию "горячая" клавиша, связанную с окном. Байт модификатора может быть комбинацией следующих флажков:

  • HOTKEYF_ALT - Клавиша ALT
  • HOTKEYF_CONTROL - Клавиша CTRL
  • HOTKEYF_EXT - Расширенная клавиша
  • HOTKEYF_SHIFT - Клавиша SHIFT

Возвращаемые значения
Величина возвращаемого значения является одной из ниже перечисленных:

  • -1 - Функция потерпела неудачу - комбинация "горячая" клавиша является недопустимой.
  • 0 - Функция потерпела неудачу - окно является недопустимым.
  • 1 - Функция завершила свою работу успешно, и ни у какого другого окна нет той же самой комбинации "горячая" клавиша.
  • 2 - Функция завершила свою работу успешно, но другое окно уже имеет ту же самую комбинацию "горячая" клавиша.

Замечания
Комбинация "горячая" клавиша не может быть связана с дочерним окном.
VK_ESCAPE, VK_SPACE и VK_TAB - недопустимые комбинации "горячая" клавиша.
Когда пользователь нажимает комбинацию "горячая" клавиша, система генерирует сообщение WM_SYSCOMMAND с wParam равным SC_HOTKEY.
Окно может иметь только одну комбинацию "горячая" клавиша. Если окно уже связано с комбинацией "горячая" клавиша, новая "горячая" клавиша заменяет старую. Если больше чем одно окно связаны с той же самой комбинацией "горячая" клавиша, окно, которое активизировано этой комбинацией, является выбранным наудачу.
Эти комбинации "горячая" клавиша несвязанны с "горячими" клавишами установленными при помощи RegisterHotKey.

Смотри также
RegisterHotKey, WM_GETHOTKEY, WM_SYSCOMMAND

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

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

 
« Предыдущая статья   Следующая статья »