*************给你一个例子*****************************
          如果能用上给我点分数就可以
要程序,我在给你发。
先加一个shellapiconst  WM_BARICON=WM_USER+200; ///*******************************8type  TForm1 = class(TForm)  private    { Private declarations }  procedure WMSysCommand(var Message: TMessage); message WM_SYSCOMMAND;  procedure WMBarIcon(var Message:TMessage);message WM_BARICON; public    { Public declarations }  end;var  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.WMSysCommand(var Message:TMessage);var  lpData:PNotifyIconData;beginif Message.WParam = SC_ICON then  begin  //如果用户最小化窗口则将窗口 隐藏并在任务栏上添加图标  lpData := new(PNotifyIconDataA);  lpData.cbSize := 88;  //SizeOf(PNotifyIconDataA);  lpData.Wnd := Form1.Handle;  lpData.hIcon := Form1.Icon.Handle;  lpData.uCallbackMessage := WM_BARICON;  lpData.uID :=0;  lpData.szTip := 'Samples';  lpData.uFlags := NIF_ICON  or NIF_MESSAGE or NIF_TIP;  Shell_NotifyIcon(NIM_ADD,lpData);  dispose(lpData);  Form1.Visible := False;  endelse  begin  //如果是其它的SystemCommand消息则调用系统缺省处理函数处理之。  DefWindowProc(Form1.Handle,Message.Msg,Message.WParam,Message.LParam);  end;//end; procedure Tform1.WMBarIcon(var Message:TMessage);var  lpData:PNotifyIconData;beginif (Message.LParam = WM_LBUTTONDOWN) thenbegin//如果用户点击任务栏图标则将图标删除并回复窗口。lpData := new(PNotifyIconDataA);lpData.cbSize := 88;//SizeOf(PNotifyIconDataA);lpData.Wnd := Form1.Handle;lpData.hIcon := Form1.Icon.Handle;lpData.uCallbackMessage := WM_BARICON;lpData.uID :=0;lpData.szTip := 'Samples';lpData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;Shell_NotifyIcon(NIM_DELETE,lpData);dispose(lpData);Form1.Visible := True;end;end;end.---- 现在很多的应用程序都有这样一种功能,当用户选择最小化窗口时,窗口不是象平常那样最小化到任务栏上,而是“最小化”成一个任务栏图标。象FoxMail 3.0 NetVampire 3.0等都提供了这样的功能。实现这样的功能实际上并不复杂,在窗口最小化时,窗口会发出WM_SYSCOMMAND消息,你只要需要截取Windows的WM_SYSCOMMAND消息,在窗口最小化时隐藏窗口并调用WindowsAPI函数Shell_NotifyIcon将定义的图标添加到任务栏上,Shell_NotifyIcon的函数定义是这样的:function Shell_NotifyIcon(dwMessage:DWORD; lpData: PNotifyIconData): BOOL; stdcall; 其中的参数dwMessage指定Shell_NotifyIcon函数的操作,可以是NIM_ADD NIM_DELETE NIM_MODIFY三个值中的一个,分别对应添加图标、删除图标、修改图标的动作。 ---- 参数lpData指向的PNotifyIconData结构的定义如下: _NOTIFYICONDATAW = recordcbSize: DWORD;Wnd: HWND;uID: UINT;uFlags: UINT;uCallbackMessage: UINT;hIcon: HICON;szTip: array [0..63] of WideChar;end;TNotifyIconData = _NOTIFYICONDATAW;---- 在这个结构中Wnd指明所属的窗口,UCallbackMessage指明回调消息,如果指明了Wnd和 uCallbackMessage,则当用户对任务栏图标有动作(如点击图标,在图标上移动光标等)。系统都会发送uCallbackMessage消息给Wnd指定的窗口。hIcon是要添加的图标的句柄,szTip 是图标的提示行(就是当移动光标到图标上,出现的一个小黄方框内出现的文字)。消息。实现上面的功能,最主要的是要处理WM_SYSCOMMAND消息和自定义的图标消息,这些消息在Delphi中并没有相应的事件。这里就需要使用到Delphi的自定义消息处理功能来截取并处理这些消息。