Partilhar via


Mensagens e filas de mensagens

Esta seção descreve mensagens e filas de mensagens e como usá-las em seus aplicativos.

Nesta secção

Designação Descrição
Sobre mensagens e filas de mensagens Esta seção discute mensagens do Windows e filas de mensagens.
Usando mensagens e filas de mensagens Os exemplos de código a seguir demonstram como executar as seguintes tarefas associadas a mensagens do Windows e filas de mensagens.
de referência de mensagem Contém a referência da API.

System-Provided Mensagens

Para obter listas das mensagens fornecidas pelo sistema, consulte System-Defined Mensagens.

Funções de mensagem

Designação Descrição
BroadcastSystemMessage Envia uma mensagem para os destinatários especificados. Os destinatários podem ser aplicativos, drivers instaláveis, drivers de rede, drivers de dispositivo no nível do sistema ou qualquer combinação desses componentes do sistema.
Para receber informações adicionais se a solicitação estiver definida, use a funçãoBroadcastSystemMessageEx.
BroadcastSystemMessageEx Envia uma mensagem para os destinatários especificados. Os destinatários podem ser aplicativos, drivers instaláveis, drivers de rede, drivers de dispositivo no nível do sistema ou qualquer combinação desses componentes do sistema.
Esta função é semelhante a BroadcastSystemMessage exceto que esta função pode retornar mais informações dos destinatários.
DispatchMessage Envia uma mensagem para um procedimento de janela. Normalmente é usado para enviar uma mensagem recuperada pelo função GetMessage.
GetInputState Determina se há mensagens de botão do mouse ou teclado na fila de mensagens do thread de chamada.
GetMessage Recupera uma mensagem da fila de mensagens do thread de chamada. A função envia mensagens recebidas enviadas até que uma mensagem postada esteja disponível para recuperação.
Ao contrário GetMessage , a funçãoPeekMessage não espera que uma mensagem seja postada antes de retornar.
GetMessageExtraInfo Recupera as informações da mensagem extra para o thread atual. Informações de mensagem extra são um valor definido pelo aplicativo ou driver associado à fila de mensagens do thread atual.
GetMessagePos Recupera a posição do cursor para a última mensagem recuperada pela funçãoGetMessage.
Para determinar a posição atual do cursor, use a função GetCursorPos.
GetMessageTime Recupera o tempo da última mensagem recuperada pela funçãoGetMessage. O tempo é um inteiro longo que especifica o tempo decorrido, em milissegundos, desde o momento em que o sistema foi iniciado até o momento em que a mensagem foi criada (ou seja, colocada na fila de mensagens do thread).
GetQueueStatus Indica o tipo de mensagens encontradas na fila de mensagens do thread de chamada.
InSendMessage Determina se o procedimento da janela atual está processando uma mensagem que foi enviada de outro thread (no mesmo processo ou em um processo diferente) por uma chamada para a funçãoSendMessage.
Para obter informações adicionais sobre como a mensagem foi enviada, use a funçãoInSendMessageEx.
InSendMessageEx Determina se o procedimento da janela atual está processando uma mensagem que foi enviada de outro thread (no mesmo processo ou em um processo diferente).
PeekMessage Despacha mensagens enviadas recebidas, verifica se há uma mensagem postada na fila de mensagens de thread e recupera a mensagem (se houver).
PostMessage Posta uma mensagem na fila de mensagens associada ao thread que criou a janela especificada e retorna sem esperar que o thread processe a mensagem.
Para postar uma mensagem na fila de mensagens associada a um thread, use a funçãoPostThreadMessage.
PostQuitMessage Indica ao sistema que um thread fez uma solicitação para encerrar (sair). Normalmente é usado em resposta a uma mensagem WM_DESTROY.
PostThreadMessage Posta uma mensagem na fila de mensagens do thread especificado. Ele retorna sem esperar que o thread processe a mensagem.
RegisterWindowMessage Define uma nova mensagem de janela que é garantidamente única em todo o sistema. O valor da mensagem pode ser usado ao enviar ou postar mensagens.
ReplyMessage Responde a uma mensagem enviada através da funçãoSendMessage dosem retornar o controle para a função chamada SendMessage.
SendAsyncProc Uma função de retorno de chamada definida pelo aplicativo usada com a funçãoSendMessageCallback. O sistema passa a mensagem para a função de retorno de chamada depois de passar a mensagem para o procedimento da janela de destino. O tipo de SENDASYNCPROC define um ponteiro para essa função de retorno de chamada. SendAsyncProc é um espaço reservado para o nome da função definida pelo aplicativo.
SendMessage Envia a mensagem especificada para uma janela ou janelas. A função SendMessage chama o procedimento de janela para a janela especificada e não retorna até que o procedimento de janela tenha processado a mensagem.
Para enviar uma mensagem e retornar imediatamente, use o SendMessageCallback ou função de SendNotifyMessage. Para postar uma mensagem na fila de mensagens de um thread e retornar imediatamente, use a função PostMessage ou PostThreadMessage.
SendMessageCallback Envia a mensagem especificada para uma janela ou janelas. Ele chama o procedimento de janela para a janela especificada e retorna imediatamente. Depois que o procedimento da janela processa a mensagem, o sistema chama a função de retorno de chamada especificada, passando o resultado do processamento da mensagem e um valor definido pelo aplicativo para a função de retorno de chamada.
SendMessageTimeout Envia a mensagem especificada para uma ou mais janelas.
SendNotifyMessage Envia a mensagem especificada para uma janela ou janelas. Se a janela foi criada pelo thread de chamada, SendNotifyMessage chama o procedimento de janela para a janela e não retorna até que o procedimento de janela tenha processado a mensagem. Se a janela foi criada por um thread diferente, SendNotifyMessage passa a mensagem para o procedimento da janela e retorna imediatamente; ele não espera que o procedimento da janela termine de processar a mensagem.
SetMessageExtraInfo Define as informações de mensagem extra para o thread atual. Informações de mensagem extra são um valor definido pelo aplicativo ou driver associado à fila de mensagens do thread atual. Um aplicativo pode usar a função GetMessageExtraInfo para recuperar as informações de mensagem extra de um thread.
TranslateMessage Traduz mensagens de chave virtual em mensagens de caracteres. As mensagens de caracteres são postadas na fila de mensagens do thread de chamada, para serem lidas na próxima vez que o thread chamar o GetMessage ou função PeekMessage.
WaitMessage Produz controle para outros threads quando um thread não tem outras mensagens em sua fila de mensagens. A função WaitMessage suspende o thread e não retorna até que uma nova mensagem seja colocada na fila de mensagens do thread.

Constantes de mensagem

Designação Descrição
OCM__BASE Usado para definir mensagens privadas para uso por classes de janela privada.
WM_APP Usado para definir mensagens privadas.
WM_USER Usado para definir mensagens privadas para uso por classes de janela privada.

Estruturas de Mensagem

Designação Descrição
BSMINFO Contém informações sobre uma janela que negou uma solicitação de BroadcastSystemMessageEx.
MSG Contém informações de mensagens da fila de mensagens de um thread.