各位大侠:
我想实现这样的功能,该怎么做程序呢?
当我点击了一个窗体内的按钮后,该窗体隐藏了,但是不要让你在任务栏中显示,而是在状态栏中显示,也就是说仅仅在系统时间所在的那一栏显示,我该怎么实现呢?尽请赐教!
我想实现这样的功能,该怎么做程序呢?
当我点击了一个窗体内的按钮后,该窗体隐藏了,但是不要让你在任务栏中显示,而是在状态栏中显示,也就是说仅仅在系统时间所在的那一栏显示,我该怎么实现呢?尽请赐教!
在状态栏显示图标(其实正规得叫法应该是系统托盘区):这得需要调用一个API函数,我一时想不起来了,建议你在帖子当中搜索一下“系统托盘”,应该会找到得。
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里的内容.