Envio e recebimento da mensagem

Considere a parte de envio do processo e como a estrutura responde.

A maioria das mensagens resulta da interação do usuário com o programa. Os comandos são gerados por cliques do mouse em itens de menu ou botões da barra de ferramentas ou por teclas de acelerador. O usuário também gera mensagens do Windows movendo ou redimensionando uma janela, por exemplo. Outras mensagens do Windows são enviadas quando ocorrem eventos como a inicialização ou o encerramento de programas, quando janelas obtêm ou perdem o foco e assim por diante. As mensagens de notificação de controle são geradas por cliques do mouse ou outras interações do usuário com um controle, como um botão ou controle de caixa de listagem em uma caixa de diálogo.

A função membro Run da classe CWinApp recupera mensagens e as envia para a janela apropriada. A maioria das mensagens de comando são enviadas para a janela de quadro principal do aplicativo. O WindowProc predefinido pela biblioteca de classes obtém as mensagens e as roteia de forma diferente, dependendo da categoria de mensagem recebida.

Considere agora a parte de recebimento do processo.

O receptor inicial de uma mensagem deve ser um objeto de janela. As mensagens do Windows geralmente são manipuladas diretamente por esse objeto de janela. As mensagens de comando, geralmente originadas na janela de quadro principal do aplicativo, são roteadas para a cadeia de destino de comando descrita no Roteamento de Comando.

Cada objeto capaz de receber mensagens ou comandos tem seu próprio mapa de mensagens que emparelha uma mensagem ou comando com o nome do manipulador.

Quando um objeto de destino de comando recebe uma mensagem ou comando, ele pesquisa o mapa de mensagens para obter uma correspondência. Se encontrar um manipulador para a mensagem, ele chamará o manipulador. Para obter mais informações sobre como os mapas de mensagens são pesquisados, consulte Como a estrutura pesquisa mapas de mensagens. Consulte novamente os Comandos na Estrutura.

Confira também

Como o Framework chama um manipulador