Как сделать окно, которое перетаскивается не за заголовок (caption), а за все поле в Delphi?

Нужно обрабатывать сообщение WM_NCHITTEST:

TForm1 = class(TForm)
...
private
...
   procedure WMNCHitTest(var M: TWMNCHitTest); message wm_NCHitTest;
...
end;
 
...
procedure TForm1.WMNCHitTest(var M: TWMNCHitTest); 
begin
   inherited; {вызов унаследованного обработчика}
   if M.Result = htClient then {Мышь сидит на окне?}
   M.Result := htCaption; {Если да - то пусть Windows думает, что мышь на caption bar}
end; 
...

Окно можно сделать вообще без caption.

Kwork.ru - услуги фрилансеров от 500 руб.
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (10 оценок, среднее: 5,00 из 5)
Загрузка...
Добавить комментарий