Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Отлов нажатия служебной кнопки диалога


Автор: Dart 8.11.2006, 12:12
Здравствуйте народ!

Есть диалог, на котором есть собственный контрол
Мне надо отловить нажатие кнопок, которые сам диалог обрабатывает
(Enter, Tab, Esc, etc)
Причем отловить именно в контроле.
Что это можно, не сомневаюсь, например Edit прекрасно перехватывает Enter, если его попросить. Но никак не могу найти, где.
Т.е. до PreTranslateMessage, а уж тем более до WindowProc и карты сообщений WM_CHAR просто не доходит.
Так как это можно сделать?

Заранее спасибо

Автор: Kostt 8.11.2006, 12:40
Отлавливай в своем контроле события OnKeyDown или OnKeyUp и проверяй соответствие параметра nChar тому, что хочешь обработать. Что касается Enter и Escape я обычно запрещаю их в своих диалогах, переопределяя методы OnOk() и OnCancel()

Автор: Dart 8.11.2006, 14:05
Kostt
Ну, OnOK и OnCancel переопределять не есть гуд - если юзер честно дощелкает по табу до кнопки ОК и нажмет Enter, его оччень это подивит.
Но, собственно, за метод спасибо - KEYDOWN в контрол приходит все таки.
(Как сам не догадался ...)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)