Windows - detectar clique em qualquer parte do form

Top  Previous  Next

{

Quando você pressiona o botão do mouse, o Windows identifica a posição da tela onde 

o cursor estava no momento do clique. Se a posição é igual a área do Caption 

do Form, o Windows ativa o modo de movimentação do Form permitindo que 

este seja arrastado.

Neste exemplo vamos considerar que o usuário poderá arrastar o Form ao clicar na 

área cliente deste Form: 

 

1.Crie uma nova aplicação. 

2.Adicione a seguinte declaração na seção private do Form: 

}

 

procedure WMNCHitTest(var M: TWMNCHitTest); message wm_NCHitTest; 

 

 

// Adicione o código deste procedimento na seção implementation do Form: 

 

procedure TForm1.WMNCHitTest(var M: TWMNCHitTest); 

begin 

  inherited; //ativa a herança da mensagem 

  if M.Result = htClient then // o clique foi na área cliente? 

    M.Result := htCaption; // se sim, faz o Windows pensar que foi no Caption. 

end

 

// Este exemplo tratou o clique na área cliente. Você pode alterar este código para suas necessidades. Eis os possíveis valores para o Result: 

 

HTBORDER - Borda da janela que não tem a borda de tamanho 

HTBOTTOM - Borda horizontal inferior da janela 

HTBOTTOMLEFT - Canto inferior esquerdo da janela 

HTBOTTOMRIGHT - Canto inferior direito da janela 

HTCAPTION - Barra de Título(Caption) 

HTCLIENT - Área cliente 

HTERROR - igual ao HTNOWHERE, a diferença é que produz um beep indicando erro 

HTGROWBOX - Caixa de tamanho (igual ao HTSIZE) 

HTHSCROLL - Barra de rolagem horizontal 

HTLEFT - Borda esquerda da janela 

HTMENU - Em um menu 

HTNOWHERE - Plano de fundo da janela ou linha de divisão entre janelas 

HTREDUCE - Botão minimizar 

HTRIGHT - Borda direita da janela 

HTSIZE - Caixa de tamanho (igual ao HTGROWBOX) 

HTSYSMENU - Botão de Sistema/Fechar da janela MDIChild 

HTTOP - Borda horizontal superior da janela 

HTTOPLEFT - Canto superior esquerdo da janela 

HTTOPRIGHT - Canto direito superior da janela 

HTTRANSPARENT - Janela em segundo plano 

HTVSCROLL - Barra de rolagem vertical 

HTZOOM - Botão maximizar