Как я могу определить, отправлен ли тип сообщения или опубликован? - PullRequest
0 голосов
/ 10 мая 2009

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

MSDN наполовину полезен; он объяснил , что происходит , но примеры, которые он приводит, по-видимому, не являются исчерпывающими.

Существует ли определенный список отправленных и опубликованных сообщений или способ решить, к какому типу относится сообщение?

Ответы [ 3 ]

3 голосов
/ 10 мая 2009

Используйте InSendMessage или InSendMessageEx до , чтобы определить, обрабатываете ли вы сообщение, отправленное вызовом в функцию SendMessage.

1 голос
/ 10 мая 2009

И некоторые сообщения не публикуются и не отправляются. Так обстоит дело с WM_PAINT, WM_TIMER и несколькими другими. Они просто возвращаются GetMessage, когда очередь опубликованных сообщений пуста.

Я не уверен, какие приложения вы пытаетесь подключить, но если вам приходится задавать такие вопросы, то я немного напуган. Нет ничего более разочаровывающего для разработчика, который тратит время на сбои, о которых сообщают пользователи, только чтобы узнать, что причина кроется в каком-то другом приложении, которое внедряет некорректно работающий код. Действуй осторожно!

Кроме того, Spy ++ (инструмент, поставляемый с Visual Studio) покажет вам, какие сообщения отправлены / отправлены / получены для любого конкретного приложения Windows Live.

0 голосов
/ 10 мая 2009

Страницы MSDN, документирующие каждое сообщение, должны рассматриваться как авторитетный источник для этого:

Сообщение WM_LBUTTONDOWN отправлено , когда ...

Сообщение WM_SETFOCUS отправлено окну после ...

и т.д.

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