Recebimento de notificação de controles comuns
Controles comuns são janelas filho que enviam mensagens de notificação para a janela pai quando ocorrem eventos, como a entrada do usuário, no controle.
O aplicativo utiliza essas mensagens de notificação para determinar a ação que o usuário deseja que ela tenha.Controles comuns mais enviam mensagens de notificação como WM_NOTIFY mensagens.Controles do Windows enviam mais mensagens de notificação como WM_COMMAND mensagens.CWnd::OnNotify é o manipulador para o WM_NOTIFY mensagem.Como com CWnd::OnCommand, a implementação de OnNotify envia a mensagem de notificação OnCmdMsg para tratamento de mapas de mensagem.A entrada de mapa de mensagens para manipular notificações ON_NOTIFY.Para obter mais informações, consulte técnico 61 Nota: ON_NOTIFY e WM_NOTIFY mensagens.
Como alternativa, uma classe derivada pode lidar com suas próprias mensagens de notificação usando "reflexão de mensagem." Para obter mais informações, consulte técnico anotação 62: mensagem de reflexão para controles do Windows.
Recuperando a posição do Cursor em uma mensagem de notificação
Ocasionalmente, é útil determinar a posição atual do cursor quando determinadas mensagens de notificação são recebidas por um controle comum.Por exemplo, seria útil determinar o local atual do cursor quando um controle comum recebe um NM_RCLICK mensagem de notificação.
Há uma maneira simples de fazer isso chamando CWnd::GetCurrentMessage.No entanto, esse método somente recupera a posição do cursor no momento em que a mensagem foi enviada.Porque o cursor pode ter sido movido desde que a mensagem foi enviada, você deve chamar CWnd::GetCursorPos para obter a posição atual do cursor.
![]() |
---|
CWnd::GetCurrentMessagesó deve ser chamado dentro de um manipulador de mensagem. |
Adicione o seguinte código ao corpo do manipulador de mensagem de notificação (neste exemplo, NM_RCLICK):
CPoint cursorPos;
cursorPos.x = GetCurrentMessage()->pt.x;
cursorPos.y = GetCurrentMessage()->pt.y;
Neste ponto, o local do cursor do mouse é armazenado na cursorPos objeto.