procedure TForm1.WMSysCommand(var Message:TMessage);
var
lpData:PNotifyIconData;
begin
if 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 := 'NBTOOLS';
lpData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
Shell_NotifyIcon(NIM_ADD,lpData);
dispose(lpData);
Form1.Visible := False;
end
else
begin
//如果是其它的SystemCommand消息则调用系统缺省处理函数处理之。
DefWindowProc(Form1.Handle,Message.Msg,Message.WParam,Message.LParam);
end;
end;
Delphi 显示最小化窗体隐藏在任务栏中显示图标和进程名
窗口最小化为托盘图标
于 2008-01-15 09:36:00 首次发布
本文介绍了一个处理窗口最小化到系统托盘的过程。当用户选择最小化时,程序会将窗口隐藏,并在任务栏上显示一个自定义图标。此外,还提供了处理其他系统命令消息的方法。
746

被折叠的 条评论
为什么被折叠?



