procedure TMainForm.FB_MinClick(Sender: TObject);
var
  h: HWnd;
  lpData: TNotifyIconData;
begin
  h := Application.Handle;  postmessage(h, WM_SYSCOMMAND, SC_MINIMIZE, 0);
  lpData.cbSize := 88;
  lpData.Wnd := MainForm.Handle;
  lpData.hIcon := MainForm.Icon.Handle;
  lpData.uCallbackMessage := MI_ICONEVENT;
  lpData.uID :=ICON_ID;
  lpData.szTip := 'PAP电力建设工程管理系统';
  lpData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
  Shell_NotifyIcon(NIM_ADD,@lpData);
  MainForm.Visible := false ;
end;
上面是一个按钮的点击事件,当点击按钮时,窗口被“最小化”成了一个任务栏图标,托盘图标.
我现在只要他在托盘上有图标.
于是,我在 oncreate 加上   SetWindowLong(Application.Handle,GWL_EXSTYLE, WS_EX_TOOLWINDOW); 这句话;
但是,左下角(任务栏上面),却出来了一个图标.点击可以还原窗体.
我现在要当点击按钮时候,只在托盘上显示小图标,左小脚的哪个条形图标不要.怎么做?
在线等. 大家来看看,谢谢

解决方案 »

  1.   

    最好也写上具体的书写步骤及代码信息
    [email protected]
      

  2.   

    abc7.0空间包里有托盘控件 我用来做类似QQ来消息时的动态托盘图标 用着还可以 "TabcTrayIcon"
      

  3.   

    在窗体创建事件中加入
    SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);//程序不在任务栏上显示取自cg1120的帖子
    呵呵
    如果可以你直接送cg1120分吧
      

  4.   

    procedure TMainForm.CreateParams(var Params: TCreateParams);
    begin
      inherited;
      Params.ExStyle    :=  Params.ExStyle + WS_EX_APPWINDOW;
    end;
    procedure TMainForm.WMSysCommand(var Message: TWMSysCommand);
    //处理消息
    begin
      case Message.CmdType of
        SC_MINIMIZE :
          begin
            //最小化
             inherited;
            TrayIcon.HideMainForm;//隐藏主窗体
          end;
        else
          inherited;
      end;
    end;