Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Win API


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / WinAPI

Выпуск № 146
от 26.10.2005, 20:09

Администратор:Калашников О.А.
В рассылке:Подписчиков: 264, Экспертов: 29
В номере:Вопросов: 1, Ответов: 3


Вопрос № 28030: Где генерируется сообщение WM_KEYDOWN, когда фокус на дочернем элементе(listbox, edit etc.). В принципе надо получить ввод с клавиатуры при выбранном child'e, в частности хочу понять куда пристроить код....

Вопрос № 28.030
Где генерируется сообщение WM_KEYDOWN, когда фокус на дочернем элементе(listbox, edit etc.).
В принципе надо получить ввод с клавиатуры при выбранном child'e, в частности хочу понять куда пристроить код.

Приложение:

Отправлен: 20.10.2005, 22:03
Вопрос задал: VampSergey (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Татьяна
Здравствуйте, VampSergey!
Дело в том, что когда это сообщение приходит childу, родителю оно соответственно не приходит. Т.е. к примеру, для того, чтобы отлавливать все нажатия клавиш на элементах окна, необходимо отлавливать его у всех ее childов, у меня была похожая проблема, самое простое на мой взгляд решение, это использование хуков, если будет необходимо смогу выслать вам примерчик. Так как пробегаться по дереву на мой взгляд не очень приятно
---------
Нет ничего невозможного!!!
Ответ отправила: Татьяна (статус: 5-ый класс)
Отправлен: 20.10.2005, 22:14
Оценка за ответ: 5
Комментарий оценки:
уууууууууу...:(((
так и взвыл бы....
не ожидал сдесь хуки использовать...
спасибо за ответ буду разбираться!

Отвечает: Jadd
Здравствуйте, VampSergey!
Если нужно вообще ловить WM_KEYDOWN и обрабатывать его только для listboxa, тогда ставь локальный хук. Иначе все контролы ловят это сообщение, т.к. все они окна со своими петлями сообщений.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Практикант)
Отправлен: 20.10.2005, 23:32
Оценка за ответ: 5
Комментарий оценки:
спасибо, понял.

Отвечает: estiGi
Здравствуйте, VampSergey!
Наверное, тебе все же нужно узнать, как отловить это сообщение, а не как оно генерируется :)
А генерируется оно системой, ловится в WinMain в цикле GetMessage и отправляется дальше, насколько я помню. Где то на РСДН была интересная статья на эту тему
А ловить сообщения для контрола в обработчике главного окна вообще неблагодарное дело. Насколько я помню, нужно разбирать сообщение WM_COMMAND. Легче для контрола написать отдельный обработчик, тогда туда оно все приходит нормальными сообщениями
Ответ отправил: estiGi (статус: 2-ой класс)
Отправлен: 21.10.2005, 01:06
Оценка за ответ: 5
Комментарий оценки:
>> а не _как_ оно генерируется
я писал _где_, но вобщем ты прав :)
Над смыслом сказанного буду думать...
Спасибо!


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Rambler's Top100 Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.winapifaq
Архив рассылки
Отписаться
Вспомнить пароль

В избранное