Categorias da mensagem
Que tipos de mensagens escrever manipuladores para?Há três categorias principais:
Mensagens do Windows
Isso inclui principalmente aquelas mensagens começando com o WM_ prefixo, exceto para WM_COMMAND.Mensagens do Windows são manipuladas pelo janelas e modos de exibição.Essas mensagens geralmente têm parâmetros que são usados na determinação de como lidar com a mensagem.
Notificações de controle
Isso inclui WM_COMMAND mensagens de notificação de controles e Outros janelas filho para suas janelas de pai.Por exemplo, um controle de edição envia seu pai um WM_COMMAND mensagem contendo o EN_CHANGE notificação de controle de código quando o usuário executou uma ação que pode ter alterado o texto no controle de edição.Manipulador da janela para a mensagem responde à mensagem de notificação de alguma maneira apropriada, sistema autônomo recuperar o texto no controle.
A estrutura roteia mensagens de notificação do controle como outros WM_ mensagens.Uma exceção, no entanto, é o BN_CLICKEDmensagem de notificação de controle de enviada por botões quando o usuário clica neles.Esta mensagem é tratada de forma especial sistema autônomo uma mensagem de comando e roteada sistema autônomo outros comandos.
Mensagens de comando
Isso inclui WM_COMMAND mensagens de notificação de objetos da interface do usuário: menus, botões da barra de ferramentas e teclas de aceleração.A estrutura processa comandos diferentemente de outras mensagens e elas podem ser tratadas por mais tipos de objetos, conforme explicado em Destinos de comando.
Mensagens do Windows e mensagens de notificação de controle
Mensagens em categorias 1 e 2 — mensagens do Windows e notificações de controle — são manipuladas pelo windows: objetos de classes derivadas de classe CWnd. Isso inclui CFrameWnd, CMDIFrameWnd, CMDIChildWnd, CView, CDialog, e suas classes derivadas dessas classes base. Esses objetos encapsulam um HWND, um identificador para uma janela do Windows.
Mensagens de comando
Mensagens na categoria 3 — comandos — pode ser tratado por uma ampla variedade de objetos: documentos, modelos de documento e o próprio objeto de aplicativo juntamente com janelas e modos de exibição.Quando um comando afeta diretamente a algum objeto específico, faz sentido ter esse objeto lidar com o comando.Por exemplo, o comando em em aberto no menu arquivo é logicamente associado ao aplicativo: o aplicativo abre um documento ao receber o comando especificado.Portanto, o manipulador para o comando ' em em aberto ' é uma função de membro da classe de aplicativo.Para obter mais informações sobre comandos e como elas são roteadas para objetos, consulte Como o estrutura chama um manipulador.