Re: Куда исчезает WM_CHAR?
От: om600  
Дата: 12.10.03 18:24
Оценка: 4 (1)
Здравствуйте, peterbes, Вы писали:


P>У меня имеется следующий COM-класс:

.......
P>Событие WM_KEYDOWN наступает, но код нажатой клавиши выдается совсем не тот.
P>Событие WM_CHAR никогда не наступает!

P>Что это такое? Что я упустил из виду? Может быть что-то не так?


Предположение.

В недрах каждой проги для Вин в функции WinMain присутствует главный цикл выборки сообщений. Его задача — извлечь сообщение из очереди (::GetMessage(...)) и направить его на обработку окну, которому оно поступило via ::DispatchMessage(...). Перед этим осуществляется одно маленькое, но важное действие: происходит трансляция _клавиатурных_ сообщений из виртуальных кодов в символьные. То есть WM_KEYDOWN -> WM_SYSCHAR -> WM_CHAR. Это делается функцией ::TranslateMessage(...).

Вот. Ноги растут отсюда.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.