![]() |
![]() |
Bokul |
![]()
Сообщение
#1
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
Возникли проблемы. Ситуация такова: при создании главного окна я связываю с ним комбинацию горячих клавиш (RegisterHotKey), с которой ассоциирую идентификатор HotKeyTId. Но позже, я предоставляю юзеру возможность, в случае необходимости, изменить комбинацию, использую Hot Key контрол, создаваемого на отдельном PopUp окне. Когда ввод Hot Keys закончен, пользователю необходимо подтвердить его нажатием на кнопку (еще один контрол окна PopUp), после чего оконная функция PopUp'a считывает ввод Hot Key контрола, посылая ему сообщение HKM_GETHOTKEY. В ответ я получаю слово (Word), в котором хранятся флаги специальных клавиш (HiWord(word)), а также код виртуальной клавиши (LoWord(Word)), введенных юзером. Это слово я посылаю главному окну, которое, в свою очередь, снимает предыдущею комбинацию горячих клавиш с HotKeyTId (UnregisterHotKey ) и ставит новую, считанную с контрола. Проблема в том, что HiWord(word)) всегда возвращает 0... Из-за чего у меня возникает сомнение что HKM_GETHOTKEY сообщения корректно, в моем случае, и что вместо строки с Hot Key контрола оно возвращает комбинацию горячих клавиш, при которых этот контрол будет активен. Так ли это?
Сообщение отредактировано: Bokul - 24.07.2007 21:44 -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
![]() ![]() |
Bokul |
![]()
Сообщение
#2
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
Бессмысленный смысл путаницы стал ясен: этим разработчики хотели подчеркнуть разницу между WM_SETHOTKEY и RegisterHotKey. ИМХО.
WM_SETHOTKEY: Цитата HOTKEYF_ALT: ALT key HOTKEYF_CONTROL: CTRL key HOTKEYF_EXT: Extended key HOTKEYF_SHIFT: SHIFT key RegisterHotKey Цитата MOD_ALTE: ither ALT key must be held down. MOD_CONTROL: Either CTRL key must be held down. MOD_SHIFT: Either SHIFT key must be held down. MOD_WIN: Either WINDOWS key was held down. These keys are labeled with the Microsoft Windows logo. Keyboard shortcuts that involve the WINDOWS key are reserved for use by the operating system. PS
А можно поменять тип modif на byte? -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 17:36 |