我如果只处理主表单的消息, 则只有主表单被隐藏. 该怎样把所有表单都隐藏? 谢谢
我参考了:
procedure TForm1.WMSysCommand(var Message:TMessage);
var
   lpData:PNotifyIconData;
begin
  if Message.WParam = SC_ICON then //SC_ICON是最小化
  begin
     //如果用户最小化窗口则将窗口隐藏并在任务栏上添加图标
     lpData := new(PNotifyIconDataA);
    // lpData.cbSize := 88;//SizeOf(PNotifyIconDataA);
     lpData.Wnd := Form1.Handle;//form1的句柄
     lpData.hIcon := Form1.Icon.Handle;//要添加图标的句柄
     lpData.uCallbackMessage := WM_BARICON;//当用户对任务栏图标有动作时,统都会发送WM_BARICON消息给 Form1.Handle指定的窗口
     lpData.uID :=0;
     lpData.szTip := '测试程序'; //移动到托盘出现的汉字
     lpData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
     Shell_NotifyIcon(NIM_ADD,lpData);
     dispose(lpData);
     Form1.Visible := False;
  end
  else
     //如果是其它的SystemCommand消息则调用系统缺省处理函数处理之。
     DefWindowProc(Form1.Handle,Message.Msg,Message.WParam,Message.LParam);
end;