Перетаскивать окно не за заголовок
Как сделать окно, которое перетаскивается не за заголовок
(caption), а за все поле.
Нужно обрабатывать сообщение WM_NCHITTEST:
{codecitation class="brush: pascal; gutter: false;" width="600px"}
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;
…
{/codecitation}
Окно можно сделать вообще без caption.