Ответ отредактирован!
Если я правильно понял, вы можете запретить двойной щелчок по строке заголовка, чтобы предотвратить восстановление формы до ее первоначального размера.Вы можете сделать это, перехватывая WM_NCLBUTTONDBLCLK .
В приведенном ниже примере я переопределил WndProc
метод основной формы и упомянутое выше сообщение.
procedure TForm1.WndProc(var Message: TMessage);
begin
case Message.Msg of
WM_NCLBUTTONDBLCLK:
begin
case TWMNCHitMessage(Message).HitTest of
HTCAPTION:
Exit
else // Another HitTest-codes are handled here
Inherited WndProc(Message);
end;
end
else
Inherited WndProc(Message);
end;
end;
Важное примечание
ХотяТеперь вы не можете восстановить развернутую форму двойным щелчком мыши, ее все равно можно восстановить, просто переместив ее, когда мышь захвачена в строке заголовка.По крайней мере, в Windows 7 этот эффект представлен.
Шаги для воспроизведения:
- Запустить приложение;
- Нажмите левую кнопку мыши, когда она зависла над строкой заголовка;
- Не отпускайте ЛКМ и мягко двигайте мышь - теперь форма восстанавливает свой размер.
Приложение
Исправлена ошибка с некорректной обработкой другогоне-клиентские HitTest-коды, за исключением HTCAPTION
(спасибо пользователю Dsm за указание на это!).