贴出你的代码。
因为窗口最小化是WM_COMMAND消息,RESIZE事件的WM_SIZE事件。

解决方案 »

  1.   

    //要用Application.OnMinimize
    {应用程序最小化时图标显示在任务栏}
    procedure TMainForm.AppMinimized(Sender:TObject);
    begin
      NID.cbSize:=SizeOf(TNotifyIconData);
      NID.hIcon:=Application.Icon.Handle;
      NID.szTip:= '彩虹2.0 Beta ';
      NID.uCallbackMessage:=WM_TrayMessage;
      NID.uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
      NID.uID:=0;
      NID.Wnd:=Handle;
      Shell_NotifyIcon(NIM_ADD,@NID);
      ShowWindow(Application.Handle,SW_Hide);
    end;procedure TMainForm.FormCreate(Sender: TObject);
    begin
      Application.OnMinimize:=AppMinimized;
      AppMinimized(nil);
    end;
      

  2.   

    {最小化事件用ONMIN函数处理}
    procedure TMainForm.FormCreate(Sender: TObject);
    begin
            application.OnMinimize:=OnMin;
    end;
    procedure TMainForm.AddSystrayIcon();
    begin
            nid.cbSize:=sizeof(_NOTIFYICONDATAA);
            nid.Wnd:=Handle;
            nid.uID:=iid;
            nid.uFlags:=NIF_MESSAGE or NIF_ICON or NIF_TIP;
            nid.uCallbackMessage:=mousemsg;
            nid.hIcon:=application.Icon.Handle;
            nid.szTip:='SoftBox';
            Shell_NotifyIconA(NIM_ADD,@nid);
    end;procedure TMainForm.DelSystrayIcon();
    begin
            nid.cbSize:=sizeof(_NOTIFYICONDATAA);
            nid.Wnd:=Handle;
            nid.uID:=iid;
            nid.uFlags:=NIF_MESSAGE or NIF_ICON or NIF_TIP;
            nid.uCallbackMessage:=mousemsg;
            nid.hIcon:=application.Icon.Handle;
            nid.szTip:='SoftBox';
            Shell_NotifyIconA(NIM_DELETE,@nid);
    end;procedure TMainForm.OnMin(Sender:Tobject);
    begin
                    AddSystrayIcon();
                    MainForm.Hide;
    end;
    {从SYSTRAY中退出并显示窗体}
    procedure TMainForm.PM_Systray_OpenClick(Sender: TObject);
    begin
            MainForm.Show;
            DelSystrayIcon();
    end;就是这样,窗体显示出来后,最小化按牛无效为什么?