Compartilhar via


Mensagens e Filas de Mensagens

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

Nesta seção

Nome Descrição
sobre mensagens e filas de mensagens Esta seção discute as mensagens do Windows e as 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 de API.

Mensagens System-Provided

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

Funções de mensagem

Nome 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 for definida, use a função BroadcastSystemMessageEx.
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.
Essa função é semelhante a BroadcastSystemMessage, exceto pelo fato de que essa função pode retornar mais informações dos destinatários.
DispatchMessage Envia uma mensagem para um procedimento de janela. Normalmente, ele é usado para expedir uma mensagem recuperada pela função GetMessage.
GetInputState Determina se há mensagens de botão do mouse ou de teclado na fila de mensagens do thread de chamada.
GetMessage Recupera uma mensagem da fila de mensagens do thread de chamada. A função despacha mensagens enviadas de entrada até que uma mensagem postada esteja disponível para recuperação.
Ao contrário GetMessage, a função PeekMessage não espera que uma mensagem seja postada antes de retornar.
GetMessageExtraInfo Recupera as informações adicionais da mensagem para o thread atual. Informações extras de mensagem 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 mensagem para a última mensagem recuperada pela função GetMessage. 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 de 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ção SendMessage.
Para obter informações adicionais sobre como a mensagem foi enviada, use a função InSendMessageEx.
InSendMessageEx Determina se o procedimento de janela atual está processando uma mensagem que foi enviada de outro thread (no mesmo processo ou em um processo diferente).
PeekMessage Despacha mensagens enviadas de entrada, verifica a fila de mensagens de thread para uma mensagem postada e recupera a mensagem (se houver alguma).
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ção PostThreadMessage.
PostQuitMessage Indica ao sistema que um thread fez uma solicitação para terminar (encerrar). Normalmente, ele é usado em resposta a uma mensagem de 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 tem a garantia de ser exclusiva em todo o sistema. O valor da mensagem pode ser usado ao enviar ou postar mensagens.
replyMessage Responde a uma mensagem enviada por meio da funçãoSendMessage sem retornar o controle à função que chamou SendMessage.
SendAsyncProc Uma função de retorno de chamada definida pelo aplicativo usada com a função SendMessageCallback. 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 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 janela. A função SendMessage chama o procedimento de janela da janela especificada e não retorna até que o procedimento de janela tenha processado a mensagem.
Para enviar uma mensagem e retornar imediatamente, use a função SendMessageCallback ou SendNotifyMessage. Para postar uma mensagem na fila de mensagens de um thread e retornar imediatamente, use a funçãopostMessageou postThreadMessage.
SendMessageCallback Envia a mensagem especificada para uma janela ou janela. Ele chama o procedimento de janela para a janela especificada e retorna imediatamente. Depois que o procedimento de 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 mais uma das janelas.
SendNotifyMessage Envia a mensagem especificada para uma janela ou janela. Se a janela tiver sido criada pelo thread de chamada, SendNotifyMessage chamará o procedimento de janela para a janela e não retornará até que o procedimento da janela tenha processado a mensagem. Se a janela foi criada por um thread diferente, SendNotifyMessage passa a mensagem para o procedimento de janela e retorna imediatamente; não aguarda o procedimento de janela concluir o processamento da mensagem.
SetMessageExtraInfo Define as informações extras da mensagem para o thread atual. Informações extras de mensagem 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 informações extras de mensagem de um thread.
TranslateMessage Converte mensagens de chave virtual em mensagens de caractere. As mensagens de caractere são postadas na fila de mensagens do thread de chamada para serem lidas na próxima vez que o thread chamar a função getMessage ou PeekMessage.
WaitMessage Gera 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

Nome 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 mensagens

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