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.

ObservaçãoObservação

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.

Consulte também

Referência

Fazer e usar controles

Conceitos

Controles (MFC)