Partilhar via


Categorias de mensagem

Para quais tipos de mensagens você escreve manipuladores Há três categorias principais:

  1. mensagens do Windows

    Isso inclui principalmente as mensagens que começam com o prefixo WM_, exceto por WM_COMMAND. As mensagens do Windows são tratadas por janelas e modos de exibição. Essas mensagens geralmente têm parâmetros usados para determinar como lidar com a mensagem.

  2. Notificações de controle

    Isso inclui mensagens de notificação WM_COMMAND de controles e outras janelas filho para as respectivas janelas pai. Por exemplo, um controle de edição envia ao pai uma mensagem de WM_COMMAND que contém o código de notificação de controle EN_CHANGE quando o usuário realiza uma ação que pode ter alterado o texto no controle de edição. O manipulador da janela para a mensagem responde à mensagem de notificação de alguma forma apropriada, como recuperar o texto no controle.

    A estrutura roteia mensagens de notificação de controle como outras mensagens WM_. Uma exceção, no entanto, é a mensagem de notificação de controle BN_CLICKED enviada por botões quando o usuário clica neles. Essa mensagem é tratada especialmente como uma mensagem de comando, e roteada como outros comandos.

  3. Mensagens de comando

    Isso inclui mensagens de notificação WM_COMMAND a partir de objetos de interface do usuário: menus, botões da barra de ferramentas e teclas de aceleração. A estrutura processa comandos de forma diferente de outras mensagens, e eles podem ser tratados por mais tipos de objetos, conforme explicado em Destinos de comandos.

Mensagens do Windows e mensagens de notificação de controle

As mensagens nas categorias 1 e 2 — mensagens do Windows e notificações de controle — são tratadas por janelas: objetos de classes derivados da classe CWnd. Isso inclui CFrameWnd, CMDIFrameWnd, CMDIChildWnd, CView, CDialog e suas próprias classes derivadas dessas classes base. Esses objetos encapsulam um HWND, um identificador de uma janela do Windows.

Mensagens de comando

As mensagens na categoria 3 — comandos — podem ser manipuladas por uma variedade mais ampla de objetos: documentos, modelos de documento e o próprio objeto de aplicativo, além de janelas e modos de exibição. Quando um comando afeta diretamente algum objeto específico, faz sentido que esse objeto manipule o comando. Por exemplo, o comando Abrir no menu Arquivo é logicamente associado ao aplicativo: o aplicativo abre um documento especificado ao receber o comando. Portanto, o manipulador do comando Abrir é uma função membro da classe de aplicativo. Para obter mais informações sobre comandos e sobre como eles são roteados para objetos, consulte Como a Estrutura chama um manipulador.

Confira também

Mensagens e comandos no Framework