![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Tiarwe |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 24.8.2011 Репутация: нет Всего: нет |
Здравствуйте! Подскажите, как заставить функцию PeekMessage обрабатывать все сообщений, за исключением (!) ввода?
|
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
Ввод - это в смысле PM_QS_INPUT - "mouse and keyboard messages"?
С помощью двух PeekMessage подряд. Первый с флагом PM_QS_INPUT | PM_REMOVE второй - обычным - с флагом PM_REMOVE. Добавлено @ 07:32 Клавиатурный и мышиный ввод в таком случае будет отсеиваться в цикле обработки сообщений потока. Это сообщение отредактировал(а) GremlinProg - 10.3.2013, 07:33 -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| Tiarwe |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 24.8.2011 Репутация: нет Всего: нет |
Спасибо) Обрабатывать можно лишь в таком порядке? Т.е. нельзя извратиться, чтобы обработать все сообщения кроме ввода, а затем его?
|
|||
|
||||
| GremlinProg |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
Можно, конечно сначала обработать остальные сообщения:
Но второй PeekMessage, с PM_QS_INPUT | PM_REMOVE нужно вызывать обязательно, иначе цикл обработки сообщений не будет погружаться в ядро, т.к. PeekMessage будет всегда возвращать TRUE. Второй Peek с флагом PM_REMOVE нужен как раз, чтобы подчистить очередь от необрабатываемых сообщений. -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||
|
|||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
более дружественный вариант флага:
0x07ff - это для того, чтобы накрыть все статусы маской, т.к. они распространяются до значения 0x0400, в будущем, маска может быть расширена, поэтому стоит попробовать 0x0ffff -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |