![]() |
|
![]() ![]() ![]() |
|
deniska |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 398 Регистрация: 1.7.2005 Где: Троицк Репутация: 1 Всего: 0 |
Ситуация следующая:
есть dialog-based приложение в InitDialog которого создается сначала объект CFrameView потом его child CSplitterWnd, который разбивается на 2-4 панели, которые можно изменять в размерах. (такой способ создания сплиттеров в диалоге нарыл где-то в инете). сейчас нужно, чтобы независимо от того какая из панелей активна, приложение могло перехватывать нажатие клавиш( интересуют буквы, цифры и стрелки ). Собственно хотелось чтобы прехваты "стекались" в 1 какой-либо обработчик, любого окна приложеня. Пока получается вот что: на одной из панелей располагаю за областью рисования свой Cedit, который обрабатывает WM_GETDLGCODE() и возвращает DLGC_WANTARROWS. При получении эдитом нужных мне кодов клавиш, посылаю родителю сообщение WM_KEYDOWN. этот способ работает только при установленном курсоре в эдите. Можно конечно в конце всех обработчиков, всех окон устанавливать курсор на этот эдит, но как то способ мне кажется кривоват. Есть ли какие-нибудь альтернативы? |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Переопредели на диалоге PreTranslateMessage и лови там.
-------------------- ... |
|||
|
||||
deniska |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 398 Регистрация: 1.7.2005 Где: Троицк Репутация: 1 Всего: 0 |
все так просто? завтра попробую...
Это сообщение отредактировал(а) deniska - 14.2.2008, 09:35 |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |