各位大侠:
    我想实现这样的功能,该怎么做程序呢?
    当我点击了一个窗体内的按钮后,该窗体隐藏了,但是不要让你在任务栏中显示,而是在状态栏中显示,也就是说仅仅在系统时间所在的那一栏显示,我该怎么实现呢?尽请赐教!

解决方案 »

  1.   

    隐藏窗体:ShowWindow(窗体handle,SW_HIDE)
    在状态栏显示图标(其实正规得叫法应该是系统托盘区):这得需要调用一个API函数,我一时想不起来了,建议你在帖子当中搜索一下“系统托盘”,应该会找到得。
      

  2.   

    你这叫最小化到系统托盘吧?用Shell_NotifyIcon函数就可以了,搜索一下这个方法的详细用法吧。
      

  3.   

    http://community.csdn.net/Expert/topic/3184/3184969.xml?temp=.1590082
      

  4.   

    unit MainUnit;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Menus, SUIPopupMenu, ImgList{¶îÍâµÄÒýÓÃ},MMSystem,shellapi,
      ExtCtrls, SUIForm, XP_Balloon, SUIButton, StdCtrls;type
      TForm1 = class(TForm)
        popupmenu1: TsuiPopupMenu;
        SetOpenMnu: TMenuItem;
        SetClosedMnu: TMenuItem;
        N3: TMenuItem;
        ExitMnu: TMenuItem;
        ImageList1: TImageList;
        hideBtn: TsuiButton;
        XP_Balloon1: TXP_Balloon;
        Label1: TLabel;
        Timer1: TTimer;
        procedure SetOpenMnuClick(Sender: TObject);
        procedure SetClosedMnuClick(Sender: TObject);
        procedure ExitMnuClick(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure hideBtnClick(Sender: TObject);
        procedure popupmenu1Popup(Sender: TObject);
        procedure FormActivate(Sender: TObject);
        procedure Timer1Timer(Sender: TObject);
      private
        { Private declarations }
      public
          IconData:   TNotifyIconData;
          cdromIcon:  TIcon;
          procedure   IconOnClick(var message:TMessage);message WM_USER+100;
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.SetOpenMnuClick(Sender: TObject);
    begin
       mciSendString('Set cdaudio door open wait',nil,0,Handle);
    end;procedure TForm1.SetClosedMnuClick(Sender: TObject);
    begin
       mciSendString('Set cdaudio door closed wait',nil,0,Handle);
    end;procedure TForm1.ExitMnuClick(Sender: TObject);
    begin
       Close();
    end;procedure TForm1.FormCreate(Sender: TObject);
    var
       rectWin: TRect;
       cxOfScr: Integer;
       cyOfScr: Integer;
       hwndT:   HWND;
    begin
       cdromIcon:=TIcon.Create;
       cdromIcon.LoadFromFile('CD Drive.ico');   IconData.cbSize:=sizeof(IconData);
       IconData.Wnd:=Handle;
       IconData.uID:=1;
       IconData.uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
       IconData.uCallbackMessage:=WM_USER+100;
       IconData.hIcon:=cdromIcon.Handle;
       IconData.szTip:='隐藏窗口示例';   //增加图标到任务栏托盘区
       Shell_NotifyIcon(NIM_ADD,@IconData);   SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
       ShowWindow(Form1.Handle,SW_HIDE);
       Timer1.Enabled:=True;
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
       Shell_NotifyIcon(NIM_DELETE,@IconData);
       action:=cafree;
    end;//单击小图标的处理函数
    procedure TForm1.IconOnClick(var message:TMessage);
    var
       p: TPoint;
    begin
       if(message.LParam=WM_LBUTTONDBLCLK) then
          ShowWindow(Handle,SW_SHOW);
       if(message.LParam=WM_RBUTTONDOWN) then
       begin
          GetCursorPos(p);
          popupmenu1.Popup(p.x,p.y);
       end;
    end;procedure TForm1.hideBtnClick(Sender: TObject);
    begin
       ShowWindow(Form1.Handle,SW_HIDE);
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    begin
       ShowWindow(Handle,SW_HIDE);
       Timer1.Enabled:=False;
    end;end.你看看可以么.
    我这个是一启动就隐藏的,你可以在按钮里面调用我写在FormCreate里的内容.