Как свернуть форму на экране
Вот полный код, демонстрирующий этот трюк:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private declarations } OldHeight: integer; procedure ZipUpForm; public { Public declarations } procedure WndProc(var Msg: TMessage); override; end; var Form1: TForm1; const iZipHeight: integer = 38; // не менее 38 для Windows XP implementation {$R *.dfm} { Перехват сообщения WM_NCLBUTTONDBLCLK } procedure TForm1.WndProc(var Msg: TMessage); begin if Msg.Msg = WM_NCLBUTTONDBLCLK then begin if Msg.WParam = htCaption then ZipUpForm; end else inherited WndProc(Msg); end; { Процедура сворачивания и разворачивания формы } procedure TForm1.ZipUpForm; begin if Height = iZipHeight then Height:= OldHeight else begin OldHeight:= Height; Height:= iZipHeight; end; end; end.
Вы можете перехватывать щелчки мыши и в другой части формы. Вот значения wParam, которые могут быть использованы:
- HTBORDER - На границе окна, которое не имеет границы изменения размеров
- HTBOTTOM - На нижней горизонтальной границе окна
- HTBOTTOMLEFT - В левом нижнем углу границы окна
- HTBOTTOMRIGHT - В правом нижнем углу окна
- HTCAPTION - В заголовке окна
- HTCLIENT - В клиентской части окна
- HTERROR - На фоне экрана или на границе между окнами (то же самое, что и HTNOWHERE, за исключением того, что звуковой сигнал будет воспроизведен при проверке нажатия HTERROR
- HTGROWBOX - В части изменения размера (то же самое, что и HTSIZE
- HTHSCROLL - На горизонтальной полосе прокрутки
- HTLEFT - На левой границе окна
- HTMENU - В меню
- HTNOWHERE - На фоне экрана или границе между окнами
- HTREDUCE - На кнопке "Свернуть"
- HTRIGHT - На правой границе окна
- HTSIZE - В области изменения размера (то же самое, что и HTGROWBOX
- HTSYSMENU - В системном меню или кнопке "Закрыть" дочернего окна
- HTTOP - На верхней горизонтальной границе окна
- HTTOPLEFT - В верхнем левом углу границы окна
- HTTOPRIGHT - В правом верхнем углу границы окна
- HTTRANSPARENT - В окне, в настоящее время закрытом другим окном
- HTVSCROLL - На вертикальной полосе прокрутки
- HTZOOM - На кнопке "Развернуть/Восстановить"
Комментарии