Ответ отредактирован!
Если я вас правильно понял, вы можете запретить двойной щелчок по строке заголовка, чтобы предотвратить восстановление исходного размера формы. Вы можете сделать это, перехватив 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 за указание на это!).
person
Josef Švejk
schedule
30.11.2018