Categorias de mensagem
Que tipos de mensagens você grava manipuladores para? Há três categorias principais:
Mensagens do windows
Isso inclui primeiro essas mensagens que começam com o prefixo de WM_ , com exceção de WM_COMMAND. As mensagens do windows são tratadas pelo windows e por exibições. Essas mensagens frequentemente têm os parâmetros usados para determinar como tratar a mensagem.
Controle notificações
Isso inclui notificações de WM_COMMAND de controles e outras janelas filho para as janelas pai. Por exemplo, um controle de edição seu pai envia uma mensagem de WM_COMMAND que contém o código de controle- notificação de EN_CHANGE quando o usuário executou uma ação que pode ter modificado o texto no controle de edição. O manipulador da janela para a mensagem responde à notificação em alguma maneira apropriada, como recuperar o texto no controle.
A estrutura roteia mensagens de notificação controle- como outras mensagens de WM_ . Uma exceção, porém, é a mensagem de controle- notificação de BN_CLICKED enviada pelos botões quando o usuário clica neles. Essa mensagem é especialmente tratada como uma mensagem de comando e roteada como outros comandos.
Mensagens de comando
Isso inclui notificações de WM_COMMAND 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 podem ser tratados por mais tipos de objetos, como explicado em Destinos de comando.
Mensagens do windows e mensagens de notificação Controle-
As mensagens em categorias 1 e 2 — mensagens do windows e notificações de controle — são tratadas pelo windows: objetos das classes derivadas da classe CWnd. Isso inclui CFrameWnd, CMDIFrameWnd, CMDIChildWnd, CView, CDialog, e suas próprias classes derivadas dessas classes base. Esses objetos HWNDencapsulam, um identificador para 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 do documento, e o próprio objeto de aplicativos além do windows e exibições. Quando um comando afeta diretamente qualquer objeto específico, faz sentido ter aquele identificador de objeto do comando. Por exemplo, o comando aberto no menu arquivo associado é logicamente com o aplicativo: o aplicativo abrir um documento especificado no recebimento do comando. Para o manipulador para o comando é aberto uma função de membro da classe do aplicativo. Para obter mais informações sobre comandos e como são roteados para objetos, consulte Como a estrutura chama um manipulador.