Movendo uma janela sem legenda usando uma "área de arrasto"
Gostaria de ter minha própria barra de legenda e, portanto, estou usando basicamente um painel (Nome: pnCaption) e removendo a barra de legenda original em CreateParams. Mas a capacidade de mover a janela pelo MouseDown-MouseMove no novo painel é um problema.
Normalmente você usaria a mensagem NCHITTEST. MAS isso não é sinalizado se o mouse estiver sobre o painel (minha própria legenda). Ver código ...
procedure TForm1.CreateParams(var params: TCreateParams);
begin
inherited Createparams(Params);
with Params do
Style := (Style or WS_POPUP) and (not WS_DLGFRAME);
end;
procedure TForm1.WM_NCHitTest(var Msg: TWMNcHitTest);
begin
inherited;
if PtInRect(pnCaption.BoundsRect, ScreenToClient(Point(Msg.XPos, Msg.YPos)))
then Msg.Result := HTCAPTION;
end;
Eu apreciaria todas as dicas de como realizar essa tarefa.
cristão