Сообщения и очереди сообщений
В этом разделе описываются сообщения и очереди сообщений, а также способы их использования в приложениях.
В этом разделе
Имя | Описание |
---|---|
о сообщениях и очередях сообщений | В этом разделе рассматриваются сообщения Windows и очереди сообщений. |
использование сообщений и очередей сообщений | В следующих примерах кода показано, как выполнять следующие задачи, связанные с сообщениями Windows и очередями сообщений. |
Справочник по сообщению | Содержит ссылку на API. |
сообщения System-Provided
Списки системных сообщений см. в System-Defined сообщениях.
Функции сообщений
Имя | Описание |
---|---|
BroadcastSystemMessage | Отправляет сообщение указанным получателям. Получатели могут быть приложениями, устанавливаемыми драйверами, сетевыми драйверами, драйверами устройств на уровне системы или любым сочетанием этих системных компонентов. Чтобы получить дополнительные сведения, если определен запрос, используйте функцию BroadcastSystemMessageEx. |
BroadcastSystemMessageEx | Отправляет сообщение указанным получателям. Получатели могут быть приложениями, устанавливаемыми драйверами, сетевыми драйверами, драйверами устройств на уровне системы или любым сочетанием этих системных компонентов. Эта функция похожа на BroadcastSystemMessage за исключением того, что эта функция может возвращать дополнительные сведения от получателей. |
DispatchMessage | Отправляет сообщение в процедуру окна. Обычно он используется для отправки сообщения, полученного функцией GetMessage. |
GetInputState | Определяет наличие сообщений мыши или клавиатуры в очереди сообщений вызывающего потока. |
GetMessage | Извлекает сообщение из очереди сообщений вызывающего потока. Функция отправляет входящие отправленные сообщения до тех пор, пока сообщение не будет доступно для получения. В отличие от GetMessage, функция PeekMessage не ожидает отправки сообщения перед возвратом. |
GetMessageExtraInfo | Извлекает дополнительные сведения о сообщении для текущего потока. Дополнительные сведения о сообщении — это значение, определенное приложением или драйвером, связанное с очередью сообщений текущего потока. |
GetMessagePos | Извлекает позицию курсора для последнего сообщения, полученного функцией GetMessage. Чтобы определить текущую позицию курсора, используйте функцию GetCursorPos. |
GetMessageTime | Извлекает время сообщения для последнего сообщения, полученного функцией GetMessage. Время представляет собой длинное целое число, указывающее истекшее время (в миллисекундах) с момента начала работы системы до момента создания сообщения (то есть помещаемого в очередь сообщений потока). |
GetQueueStatus | Указывает тип сообщений, найденных в очереди сообщений вызывающего потока. |
InSendMessage | Определяет, обрабатывает ли текущая процедура окна сообщение, отправленное из другого потока (в том же процессе или другом процессе), вызовом функции SendMessage. Чтобы получить дополнительные сведения о том, как было отправлено сообщение, используйте функцию InSendMessageEx. |
InSendMessageEx | Определяет, обрабатывает ли текущая процедура окна сообщение, отправленное из другого потока (в том же процессе или другом процессе). |
PeekMessage | Отправляет входящие отправленные сообщения, проверяет очередь сообщений потока для отправленного сообщения и извлекает сообщение (если оно существует). |
PostMessage | Публикует сообщение в очереди сообщений, связанной с потоком, создающим указанное окно, и возвращается без ожидания обработки сообщения. Чтобы опубликовать сообщение в очереди сообщений, связанной с потоком, используйте функцию PostThreadMessage. |
PostQuitMessage | Указывает системе, что поток сделал запрос на завершение (выход). Обычно оно используется в ответ на сообщение WM_DESTROY. |
PostThreadMessage | Отправляет сообщение в очередь сообщений указанного потока. Он возвращается без ожидания обработки сообщения потоком. |
RegisterWindowMessage | Определяет новое сообщение окна, которое гарантированно будет уникальным во всей системе. Значение сообщения можно использовать при отправке или публикации сообщений. |
ReplyMessage | Ответы на сообщение, отправленное через функцию SendMessage без возврата элемента управления в функцию, которая называется SendMessage. |
SendAsyncProc | Определяемая приложением функция обратного вызова, используемая с функцией SendMessageCallback. Система передает сообщение функции обратного вызова после передачи сообщения в процедуру целевого окна. Тип SENDASYNCPROC определяет указатель на эту функцию обратного вызова.
SendAsyncProc является заполнителем для имени определяемой приложением функции. |
SendMessage | Отправляет указанное сообщение в окно или окна. Функция SendMessage вызывает процедуру окна для указанного окна и не возвращается, пока процедура окна не обработала сообщение. Чтобы отправить сообщение и вернуться немедленно, используйте функцию sendMessageCallback или SendNotifyMessage. Чтобы отправить сообщение в очередь сообщений потока и вернуться немедленно, используйте функцию PostMessage или PostThreadMessage. |
SendMessageCallback | Отправляет указанное сообщение в окно или окна. Он вызывает процедуру окна для указанного окна и возвращается немедленно. После обработки сообщения система вызывает указанную функцию обратного вызова, передав результат обработки сообщений и определяемое приложением значение функции обратного вызова. |
SendMessageTimeout | Отправляет указанное сообщение в одно из нескольких окон. |
SendNotifyMessage | Отправляет указанное сообщение в окно или окна. Если окно было создано вызывающим потоком, SendNotifyMessage вызывает процедуру окна для окна и не возвращается, пока процедура окна не обработала сообщение. Если окно было создано другим потоком, SendNotifyMessage передает сообщение в процедуру окна и возвращается немедленно; Он не ожидает завершения обработки сообщения процедурой окна. |
SetMessageExtraInfo | Задает дополнительные сведения о сообщении для текущего потока. Дополнительные сведения о сообщении — это значение, определенное приложением или драйвером, связанное с очередью сообщений текущего потока. Приложение может использовать функцию GetMessageExtraInfo для получения дополнительных сведений о сообщении потока. |
TranslateMessage | Преобразует сообщения виртуального ключа в символьные сообщения. Символьные сообщения публикуются в очереди сообщений вызывающего потока, чтобы прочитать следующий раз, когда поток вызывает функцию GetMessage или PeekMessage. |
WaitMessage | Возвращает управление другими потоками, если поток не имеет других сообщений в очереди сообщений. Функция WaitMessage приостанавливает поток и не возвращается, пока новое сообщение не будет помещено в очередь сообщений потока. |
Константы сообщений
Имя | Описание |
---|---|
OCM__BASE | Используется для определения частных сообщений для использования классами частного окна. |
WM_APP | Используется для определения частных сообщений. |
WM_USER | Используется для определения частных сообщений для использования классами частного окна. |
Структуры сообщений
Имя | Описание |
---|---|
BSMINFO | Содержит сведения о окне, которое отказано в запросе от BroadcastSystemMessageEx. |
MSG | Содержит сведения о сообщении из очереди сообщений потока. |