Interpretando a entrada do usuário por meio de uma exibição
Outras funções de membro do identificador de exibição e interpretam todas as entradas de usuário. Normalmente, você definirá funções de membro do manipulador de mensagens em sua classe de exibição para processar:
Mensagens do Windows geradas por ações de mouse e teclado.
Comandos de menus, botões da barra de ferramentas e teclas de acelerador.
Essas funções membro do manipulador de mensagens interpretam as seguintes ações como entrada, seleção ou edição de dados, incluindo a movimentação de dados de e para a Área de Transferência:
Movimentos e cliques do mouse, arraste e cliques duplos
Pressionamentos de tecla
Comandos de menu
As mensagens do Windows que seu modo de exibição manipula dependem das necessidades do aplicativo.
Tópicos de Manipulação e Mapeamento de Mensagens explica como atribuir itens de menu e outros objetos de interface do usuário a comandos e como associar os comandos a funções de manipulador. Tópicos de Mapeamento e Tratamento de Mensagens também explica como o MFC roteia comandos e envia mensagens padrão do Windows para os objetos que contêm manipuladores para eles.
Por exemplo, seu aplicativo pode precisar implementar o desenho direto do mouse no modo de exibição. O exemplo de Rabisco mostra como lidar com as mensagens WM_LBUTTONDOWN, WM_MOUSEMOVE e WM_LBUTTONUP, respectivamente, para começar, continuar e encerrar o desenho de um segmento de linha. Por outro lado, talvez às vezes você precise interpretar um clique do mouse em seu modo de exibição como uma seleção. A função de manipulador OnLButtonDown
do modo de exibição determinaria se o usuário estava desenhando ou selecionando. Se ele estava selecionando, o manipulador determinará se o clique estava dentro dos limites de algum objeto no modo de exibição e, se for o caso, alterará a exibição para mostrar o objeto como selecionado.
Seu modo de exibição também pode manipular determinados comandos de menu, como aqueles do menu Editar para cortar, copiar, colar ou excluir dados selecionados usando a Área de Transferência. Esse manipulador chamaria algumas das funções de membro relacionadas à Área de Transferência da classe CWnd
para transferir um item de dados selecionado para ou da Área de Transferência.