как расставить приоритеты для пользовательских сообщений в потоке? - PullRequest
0 голосов
/ 28 августа 2009

У меня есть только один поток (приложение Windows), который получает окна и пользовательские сообщения. Прямо сейчас, когда пользователь щелкает мышью и продолжает нажимать, приложение блокируется.
Как я могу решить это? У меня есть ограничение одного потока.

Ответы [ 3 ]

2 голосов
/ 28 августа 2009

когда пользователь щелкает мышью и удерживает нажатой, приложение блокируется.

Этого не должно быть в стандартном макете цикла сообщений.

Вы не можете заблокировать полученное сообщение, если хотите проделать какую-то долгую операцию (например, ожидание сообщения «вверх»).

Так что я думаю, что ваша проблема в логике WM_LBUTTONDOWN. Просто установите флажок и не ждите сообщения WM_LBUTTONUP.

1 голос
/ 28 августа 2009

Вы можете использовать PeekMessage () с фильтром. GetMessage () также позволяет фильтровать.

См. Документацию MSDN: http://msdn.microsoft.com/en-us/library/ms644943%28VS.85%29.aspx

0 голосов
/ 28 августа 2009

Попытайтесь выяснить, возвращаете ли вы правильное значение из функции wndproc. Если вы не вернете правильное значение, есть вероятность блокировки приложения. Я думаю, что в вашем случае событие WM_LBUTTONDOWN может не возвращать правильное значение .....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...