79. Поставленные в очередь (синхронные) сообщения
PostMessage
или
PostThreadMessage.
Внеочередные
(асинхронные) сообщения отправляются
немедленно оконной процедуре
предназначения, в обход системной
очереди сообщений и очереди сообщений
потока. Система обычно отправляет
внеочередные (асинхронные) сообщения,
чтобы уведомить окно о событиях, которые
воздействуют на него. Например, когда
пользователь активизирует новое окно
прикладной программы, система отправляет
окну ряд сообщений, включая WM_ACTIVATE,
WM_SETFOCUS
и
WM_SETCURSOR.
Эти сообщения уведомляют окно, что оно
было активизировано, что ввод информации
с клавиатуры направлен в окно, и что
курсор мыши был перемещен в пределы
границ окна. Внеочередные (асинхронные)
сообщения могут быть также результатом
того, что прикладная программа вызывает
некоторые функции системы. Например,
система отправляет сообщение
WM_WINDOWPOSCHANGED
после того, как прикладная программа
использует для перемещения окна функцию
SetWindowPos.
Вот
некоторые функции, которые отправляют
не поставленные в очередь (асинхронные)
сообщения - BroadcastSystemMessage,
BroadcastSystemMessageEx,
SendMessage,
SendMessageTimeout
и SendNotifyMessage.