A mensagem WM_NCHITTEST

Sempre que ocorre um evento de mouse, o sistema envia uma mensagem WM_NCHITTEST a qualquer janela que contém o ponto de acesso do cursor ou a janela que tenha capturado o mouse. O sistema usa esta mensagem para determinar se deseja enviar um cliente mensagem de mouse de área área ou não cliente. Um aplicativo que deve receber mensagens de botão do mouse e movimento do mouse deve transmitir a mensagem WM_NCHITTEST para o DefWindowProc função.

O lParam parâmetro da mensagem WM_NCHITTEST contém as coordenadas de tela do ponto de acesso do cursor. O DefWindowProc função examina as coordenadas e retorna um valor de teste de impacto que identifica a localização do ponto ativo. O valor de teste de impacto pode ser uma dos seguinte valores.

Valor Localização do ponto de acesso
HTBORDER Na borda de uma janela que não tem uma borda de dimensionamento
HTBOTTOM In a borda horizontal inferior de uma janela
HTBOTTOMLEFT No canto inferior esquerdo de uma borda de janela
HTBOTTOMRIGHT No canto inferior direito de uma borda de janela
HTCAPTION Em uma barra de título
HTCLIENT Em uma área do cliente
HTCLOSE No botão Fechar.
HTERRORNO O plano de fundo da tela ou em uma linha divisória entre as janelas (mesmo como HTNOWHERE, exceto que o DefWindowProc função produz um bipe do sistema para indicar um erro)
HTGROWBOX Em uma caixa de tamanho (o mesmo que HTSIZE)
HTHELP No botão de ajuda.
HTHSCROLL Em uma barra de rolagem horizontal
HTLEFT Na borda esquerda de uma janela
HTMENU Em um menu
HTMAXBUTTON No botão maximizar.
HTMINBUTTON No botão minimizar.
HTNOWHERE O plano de fundo da tela ou em uma linha divisória entre as janelas
HTREDUCE Em um botão de minimizar
HTRIGHT No direito borda de uma janela
HTSIZE Em uma caixa de tamanho (mesmo que HTGROWBOX)
HTSYSMENU Em um menu do sistema ou em um botão fechar em uma janela filho
HTTOP In a borda horizontal superior de uma janela
HTTOPLEFT No canto superior esquerdo de uma borda de janela
HTTOPRIGHT No canto superior direito de uma borda de janela
HTTRANSPARENT Em uma janela atualmente coberta por outra janela no mesmo thread
HTVSCROLL Na barra de rolagem vertical
HTZOOM Em um botão de maximizar

Se o cursor estiver na área de cliente de uma janela, DefWindowProc retorna o valor de teste de impacto HTCLIENT para o procedimento janela. Quando o procedimento de janela retorna este código para o sistema, o sistema converte as coordenadas de tela do ponto de acesso do cursor em coordenadas do cliente e, em seguida, envia o cliente apropriado mensagem de mouse de área.

O DefWindowProc função retorna um dos outros valores de teste de impacto, quando o ponto de acesso do cursor estiver na área de não cliente de uma janela. Quando o procedimento de janela retorna um destes valores de teste de impacto, o sistema envia um não cliente área do mouse mensagem, colocando o valor de teste de impacto na wParam parâmetro da mensagem e as coordenadas do cursor na lParam parâmetro.

Index