|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.01.2013, 08:18 | #1 |
DI HALT RET
Форумчанин
Регистрация: 30.12.2010
Сообщений: 117
|
[Вопрос] Сочетание клавиш в RichEdit
Доброе время суток.
Возник такой вопрос: как обработать IDC_SAVE в меню из RichEdit? Создаю окно и RichEdit в нем: Код:
Пробовал сделать перехват по ENM_KEYEVENTS: Код:
Можно ли привязать акселератор и к ричу (да и вообще ко всем дочерним окнам)? А если можно, как? Ну или как обойти? Заранее спасибо. p.s.: извиняюсь за ошибку в названии темы Последний раз редактировалось Tahoma; 04.01.2013 в 08:45. |
04.01.2013, 08:53 | #2 |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
одноврменное нажатие.... если мне память не изменяет можно добица путём создания своего vk_event... попробуйте сложить код буквы и код ctrl.
//---- если заробит, то трабла будет в ином. по поводу аксселератора, он привязывается вобще то отдельным методом. HACCEL hAcc; hAcc = LoadAccelerators(hInst, MAKEINTRESOURCE(ID_MENUACC));
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Последний раз редактировалось Perchik71; 04.01.2013 в 09:01. |
04.01.2013, 08:55 | #3 |
DI HALT RET
Форумчанин
Регистрация: 30.12.2010
Сообщений: 117
|
|
04.01.2013, 09:13 | #5 | |
DI HALT RET
Форумчанин
Регистрация: 30.12.2010
Сообщений: 117
|
Цитата:
Акселератор указан: Код:
|
|
04.01.2013, 09:22 | #6 | |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
Цитата:
Код:
у вас должно быть два транслате. /---- hMainTable - допустим ваш аксселератор... попробуйте его пропускать по двум окнам.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Последний раз редактировалось Perchik71; 04.01.2013 в 09:26. |
|
04.01.2013, 09:32 | #7 |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
Если он опять задолбает, то знай в комманд попадет аксселератор. wparam(старшее слово) равно 1 - значит акселератор, wparam(младшее слово) код акселератора.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
|
07.01.2013, 17:09 | #8 |
DI HALT RET
Форумчанин
Регистрация: 30.12.2010
Сообщений: 117
|
Привязал акселератор на хэндл hRE. Теперь печатает сразу по 2-4 символа, но на CTRL+S все равно не реагирует.
|
08.01.2013, 08:31 | #9 |
DI HALT RET
Форумчанин
Регистрация: 30.12.2010
Сообщений: 117
|
Нашел наконец решение через обработку всего рича:
Код:
|
08.01.2013, 12:18 | #10 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
Обработку событий клавы крайне желательно вешать на KEYDOWN, с мышой - ровно наоборот, на KEYUP. Можно и так, как у вас, но это будет смущать многолетние привычки юзера. Ну, вот так повелось от изначально, что символ печатается по нажатию, а не по отпусканию клавиши.
After a while: Мутная это какая-то тема - акселераторы. Msdn и вправду настаивает на сабклассинге контрола, имеющего в данный момент фокус... Последний раз редактировалось Smogg; 08.01.2013 в 13:32. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сочетание клавиш. | Vaigard | Общие вопросы Delphi | 10 | 29.12.2010 18:25 |
Сочетание клавиш | Fezdipekla | Microsoft Office Access | 3 | 19.06.2010 19:38 |
Не работает сочетание клавиш | vikttur | Операционные системы общие вопросы | 6 | 06.06.2010 00:23 |
Сочетание клавиш | Денис546546 | Помощь студентам | 3 | 07.12.2009 09:45 |
Сочетание клавиш | Malder | Общие вопросы .NET | 0 | 19.01.2009 20:57 |