Перемещение окна без заголовков с помощью «области перетаскивания»
Я хотел бы иметь собственную панель заголовка, и поэтому я использую в основном панель (имя: pnCaption) и удаляю исходную панель заголовка в CreateParams. Но проблема перемещения окна с помощью MouseDown-MouseMove в новой панели является проблемой.
Обычно вы используете сообщение NCHITTEST. НО это не сигнализируется, если мышь находится над панелью (моя подпись). Смотрите код ...
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;
Буду признателен за любые советы, как выполнить эту задачу.
Кристиан