delphi點擊窗體最小化,關閉按鈕時的托盤圖標設置

判斷窗體是否按下最小化等按鈕時,可以截取鼠標按下按鈕時的消息.下面有2種方法可以做到.轉自Delphi共和國--<<如何判斷鼠標按下了窗體最小化按鈕>>:

方法一:截获 WM_SYSCOMMAND消息,看窗体是否处于最小化状态

type

TForm1 = class(TForm)

private

procedure WMSysCommand(var Message: TMessage); message WM_SYSCOMM

AND;

//...

end;

implementation

{$R *.DFM}

procedure TForm1.WMSysCommand(var Message:TMessage);

begin

if Message.WParam = SC_ICON then //最小化了.最大化 SC_ZOOM,關閉:SC_CLOSE

begin

//form1.hide; ...

end

else

inherited;//很重要的.上次就是因為沒加這句,導致窗體不能拖動等問題

end;

方法二,直接判断是否点了窗体非客户区的最小化按钮

type

TForm1 = class(TForm)

private

procedure Minimize(var mess:TWMNCLBUTTONDOWN);message WM_NCLBUTTON

DOWN;

//...

end;

implementation

{$R *.DFM}

procedure TForm1.Minimize(var mess:TWMNCLBUTTONDOWN);

begin

if mess.hittest=htreduce then //htreduce表示是否按了最小化按钮.關閉:HTCLOSE

begin

//Form1.hide; ...

end

else

inherited;//同樣重要

end;

其實,知道了什么時候是按下了窗體最小化等按鈕的處理,其它的就很清楚了.