Сообщения и очереди сообщений
В этом разделе описываются сообщения и очереди сообщений, а также способы их использования в приложениях.
В этом разделе
Имя | Описание |
---|---|
Сведения о сообщениях и очередях сообщений | В этом разделе рассматриваются сообщения и очереди сообщений Windows. |
Использование сообщений и очередей сообщений | В следующих примерах кода показано, как выполнять следующие задачи, связанные с сообщениями и очередями сообщений Windows. |
Справочник по сообщениям | Содержит справочник по API. |
сообщения System-Provided
Списки системных сообщений см. в разделе Системные сообщения.
Функции сообщений
Имя | Описание |
---|---|
BroadcastSystemMessage | Отправляет сообщение указанным получателям. Получателями могут быть приложения, устанавливаемые драйверы, сетевые драйверы, драйверы устройств на уровне системы или любое сочетание этих системных компонентов. Чтобы получить дополнительные сведения, если запрос определен, используйте функцию BroadcastSystemMessageEx . |
BroadcastSystemMessageEx | Отправляет сообщение указанным получателям. Получателями могут быть приложения, устанавливаемые драйверы, сетевые драйверы, драйверы устройств на уровне системы или любое сочетание этих системных компонентов. Эта функция похожа на BroadcastSystemMessage , за исключением того, что она может возвращать дополнительные сведения от получателей. |
DispatchMessage | Отправляет сообщение в процедуру окна. Обычно он используется для отправки сообщения, полученного функцией GetMessage . |
GetInputState | Определяет, есть ли в очереди сообщений вызывающего потока сообщения с помощью кнопки мыши или клавиатуры. |
GetMessage | Извлекает сообщение из очереди сообщений вызывающего потока. Функция отправляет входящие отправленные сообщения до тех пор, пока отправленное сообщение не будет доступно для получения. В отличие от GetMessage, функция PeekMessage не ожидает отправки сообщения перед возвратом. |
GetMessageExtraInfo | Извлекает дополнительные сведения о сообщении для текущего потока. Дополнительные сведения о сообщении — это определенное приложением или драйвером значение, связанное с очередью сообщений текущего потока. |
GetMessagePos | Извлекает позицию курсора для последнего сообщения, полученного функцией GetMessage . Чтобы определить текущее положение курсора, используйте функцию GetCursorPos . |
GetMessageTime | Извлекает время последнего сообщения, полученного функцией GetMessage . Time — это длинное целое число, указывающее время, затраченное в миллисекундах, с момента запуска системы до момента создания сообщения (то есть в очереди сообщений потока). |
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 | Содержит информацию сообщения из очереди сообщений потока. |