Прикладная программа посылает сообщение WM_SETHOTKEY окну, чтобы связать комбинацию "горячая" клавиша с окном. Когда пользователь нажимает комбинацию "горячая" клавиша, система активизирует окно.
Синтаксис
Чтобы отправить это сообщение, вызовите функцию SendMessage следующим образом.
lResult = SendMessage( // тип возвращаемого значения в // переменной lResult - LRESULT (HWND) hWndControl, // дескриптор целевого органа управления (UINT)WM_SETHOTKEY, // ID сообщения (WPARAM) wParam, // = (WPARAM) () wParam; (LPARAM) lParam // = (LPARAM) () lParam;); |
Параметры
wParam
Младшее слово устанавливает код виртуальной клавиши, который связывается с окном.
Старшее слово может состоять из одного или нескольких ниже следующих значений.
Установка параметра wParam в значение ПУСТО (NULL) удаляет "горячую" клавишу, связанную с окном.
Значение |
Предназначение |
HOTKEYF_ALT |
Клавиша ALT |
HOTKEYF_CONTROL |
Клавиша CTRL |
HOTKEYF_EXT |
Дополнительная клавиша |
HOTKEYF_SHIFT |
Клавиша SHIFT |
lParam
Этот параметр не используется.Возвращаемые значения
Величина возвращаемого значения является одной из ниже перечисленных:
Значение |
Описание |
-1 |
Функция потерпела неудачу - комбинация "горячая" клавиша является недопустимой. |
0 |
Функция потерпела неудачу - окно является недопустимым. |
1 |
Функция завершила свою работу успешно, и ни у какого другого окна нет такой же комбинации "горячая" клавиша. |
2 |
Функция завершила свою работу успешно, но другое окно уже имеет такую же комбинацию "горячая" клавиша. |
Замечания
Комбинация "горячая" клавиша не может быть связана с дочерним окном.
VK_ESCAPE, VK_SPACE и VK_TAB - недопустимые комбинации "горячая" клавиша.
Когда пользователь нажимает комбинацию "горячая" клавиша, система генерирует сообщение WM_SYSCOMMAND с параметром wParam равным SC_HOTKEY и параметром lParam равным дескриптору окна. Если это сообщение передается в функцию DefWindowProc, система выставит последнее активное выскакивающее окно (если таковое существует) или окно активизирует само (если нет никакого выпрыгивающего окна).
Окно может иметь только одну комбинацию "горячая" клавиша. Если окно уже связано с комбинацией "горячая" клавиша, новая "горячая" клавиша заменяет старую. Если больше чем одно окно связаны с той же самой комбинацией "горячая" клавиша, окно, которое активизировано этой комбинацией, является выбранным наудачу.
Эти комбинации "горячая" клавиша несвязанны с "горячими" клавишами установленными при помощи
RegisterHotKey.Смотри также
Обзор Ввод данных с клавиатуры, RegisterHotKey, WM_GETHOTKEY, WM_SYSCOMMAND
Размещение и совместимость WM_SETHOTKEY |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
Нет |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |