const WM_NOTIFYICON=WM_USER+1;
...
type
TMainForm = class(TForm)
...
private
...
{ Private declarations }
procedure AddIcon; //添加图标到托盘里
procedure RemoveIcon;//删除托盘里的图标
procedure windowhide; // Hide Window
procedure windowshow; // Show Window
procedure OnNotifyicon(var Message:Tmessage);Message WM_NOTIFYICON; //处理菜单
....procedure TMainForm.AddIcon;
begin
IconData.cbSize:=sizeof(IconData);
IconData.Wnd:=handle;
IconData.uID:=1000;
IconData.uFlags:=NIF_MESSAGE+NIF_ICON+NIF_TIP;
IconData.uCallbackMessage:=WM_USER+1;
IconData.hIcon:=application.icon.Handle;
IconData.szTip:='金山软件';
Shell_NotifyIcon(NIM_ADD,@IconData);
end;procedure TMainForm.RemoveIcon;
begin
shell_notifyicon(NIM_DELETE,@ICONDATA);
end;procedure TMainForm.windowhide;
begin self.WindowState:=wsMinimized;
self.Hide;
Application.HideHint;
self.addicon;
end;procedure TMainForm.windowshow;
begin
self.Show;
self.WindowState:=wsNormal;
Application.ShowHint := True;
self.RemoveIcon;
end;procedure TMainForm.OnNotifyicon(var Message: Tmessage);
var
mypoint:Tpoint;
begin
if Message.LParam = WM_RBUTTONDOWN then
begin
GetCursorPos(mypoint);
setforegroundwindow(application.Handle);
application.ProcessMessages;
PopupMenuTry.popup(mypoint.x,mypoint.y);
end
else if Message.LParam = WM_LBUTTONDBLCLK THEN
Begin
WindowShow;
end;end;
...
type
TMainForm = class(TForm)
...
private
...
{ Private declarations }
procedure AddIcon; //添加图标到托盘里
procedure RemoveIcon;//删除托盘里的图标
procedure windowhide; // Hide Window
procedure windowshow; // Show Window
procedure OnNotifyicon(var Message:Tmessage);Message WM_NOTIFYICON; //处理菜单
....procedure TMainForm.AddIcon;
begin
IconData.cbSize:=sizeof(IconData);
IconData.Wnd:=handle;
IconData.uID:=1000;
IconData.uFlags:=NIF_MESSAGE+NIF_ICON+NIF_TIP;
IconData.uCallbackMessage:=WM_USER+1;
IconData.hIcon:=application.icon.Handle;
IconData.szTip:='金山软件';
Shell_NotifyIcon(NIM_ADD,@IconData);
end;procedure TMainForm.RemoveIcon;
begin
shell_notifyicon(NIM_DELETE,@ICONDATA);
end;procedure TMainForm.windowhide;
begin self.WindowState:=wsMinimized;
self.Hide;
Application.HideHint;
self.addicon;
end;procedure TMainForm.windowshow;
begin
self.Show;
self.WindowState:=wsNormal;
Application.ShowHint := True;
self.RemoveIcon;
end;procedure TMainForm.OnNotifyicon(var Message: Tmessage);
var
mypoint:Tpoint;
begin
if Message.LParam = WM_RBUTTONDOWN then
begin
GetCursorPos(mypoint);
setforegroundwindow(application.Handle);
application.ProcessMessages;
PopupMenuTry.popup(mypoint.x,mypoint.y);
end
else if Message.LParam = WM_LBUTTONDBLCLK THEN
Begin
WindowShow;
end;end;
self.WindowState:=wsMinimized;
self.Hide;
Application.HideHint;
我给你一个控件,还能有好多功能
来信说明要此控件名
http://go7.163.com/keyes/component/trayicon.zip