private procedure FormMin(var Msg: TWMSYSCOMMAND); message WM_SYSCOMMAND; //截取窗口右上角的关闭按钮事件 implementation{$R *.dfm}//截取窗口右上角的关闭按钮事件 procedure TMainForm.FormMin(var Msg: TWMSYSCOMMAND); begin if (Msg.CmdType=SC_CLOSE) then Msg.CmdType:=SC_MINIMIZE; //使其最小化 Inherited; end;
有一个组件CoolTrayIcon,轻松设置托盘图标与主程序的显示.
谢2楼的朋友,但我用的是CoolTrayIcon控件,所以用4楼朋友的方法比较合适,不过要加个else否则最小化最大化不能用。把代码贴一下,以便其他朋友参考。谢谢两位,结贴。 procedure TMainForm.FormMin(var Msg: TWMSYSCOMMAND); begin if (Msg.CmdType=SC_CLOSE) then begin CoolTrayIcon1.HideMainForm; end else inheritedend;
迅雷是通过托盘右键菜单和桌面图标的弹出菜单 里面有“退出”一项下面是前几天你问过一贴,里面有我的回答,就已经实现这个功能了http://topic.csdn.net/u/20080331/20/4e9ef8fd-60e6-4d12-a8c4-8638b2c7e8cf.html
private
procedure FormMin(var Msg: TWMSYSCOMMAND); message WM_SYSCOMMAND; //截取窗口右上角的关闭按钮事件
implementation{$R *.dfm}//截取窗口右上角的关闭按钮事件
procedure TMainForm.FormMin(var Msg: TWMSYSCOMMAND);
begin
if (Msg.CmdType=SC_CLOSE) then
Msg.CmdType:=SC_MINIMIZE; //使其最小化
Inherited;
end;
procedure TMainForm.FormMin(var Msg: TWMSYSCOMMAND);
begin if (Msg.CmdType=SC_CLOSE) then
begin
CoolTrayIcon1.HideMainForm;
end
else
inheritedend;