Перемещение окна без заголовков с помощью «области перетаскивания»

Я хотел бы иметь собственную панель заголовка, и поэтому я использую в основном панель (имя: 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;  

Буду признателен за любые советы, как выполнить эту задачу.

Кристиан

Ответы на вопрос(4)

Ваш ответ на вопрос