就是TrayIcon 的应用程序
//转载 某高人的
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus,shellapi;
const
WM_TrayMessage=WM_User+100;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N11: TMenuItem;
N21: TMenuItem;
N22: TMenuItem;
N23: TMenuItem;
N24: TMenuItem;
N31: TMenuItem;
N32: TMenuItem;
PopupMenu1: TPopupMenu;
er1: TMenuItem;
rer1: TMenuItem;
rer2: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure N21Click(Sender: TObject);
procedure rer1Click(Sender: TObject);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
protected
procedure AppMinimized(Sender: TObject);
procedure WMTrayMessage(var msg:TMessage);message WM_TrayMessage; private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
NID:TNotifyIconData;implementation{$R *.DFM}{ TForm1 }procedure TForm1.AppMinimized(Sender: TObject);
begin
NID.cbSize:=SizeOf(TNotifyIconData);
NID.hIcon:=Application.Icon.Handle;
NID.szTip:= '工程一 ';
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 TForm1.WMTrayMessage(var msg: TMessage);
var
p:TPoint;
begin
if msg.LParam=WM_LButtonDown then
begin
ShowWindow(Application.Handle,SW_Show);
Application.Restore;
end
else if msg.LParam=WM_RButtonDown then
begin
GetCursorPos(p);
PopupMenu1.Popup(p.x,p.y);
end;
end;procedure TForm1.FormCreate(Sender: TObject);
//var Owner : HWnd;
begin
//Owner:=GetWindow(Handle,GW_OWNER);
// ShowWindow(Owner,SW_HIDE);Application.OnMinimize:=AppMinimized;
AppMinimized(nil);end;procedure TForm1.FormDestroy(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE,@NID);
end;procedure TForm1.N21Click(Sender: TObject);
begin
ShowWindow(Application.Handle,SW_Show);
Application.Restore;end;procedure TForm1.rer1Click(Sender: TObject);
begin
close;
end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
// showmessage('工程一')
end;end.
//转载 某高人的
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus,shellapi;
const
WM_TrayMessage=WM_User+100;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N11: TMenuItem;
N21: TMenuItem;
N22: TMenuItem;
N23: TMenuItem;
N24: TMenuItem;
N31: TMenuItem;
N32: TMenuItem;
PopupMenu1: TPopupMenu;
er1: TMenuItem;
rer1: TMenuItem;
rer2: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure N21Click(Sender: TObject);
procedure rer1Click(Sender: TObject);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
protected
procedure AppMinimized(Sender: TObject);
procedure WMTrayMessage(var msg:TMessage);message WM_TrayMessage; private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
NID:TNotifyIconData;implementation{$R *.DFM}{ TForm1 }procedure TForm1.AppMinimized(Sender: TObject);
begin
NID.cbSize:=SizeOf(TNotifyIconData);
NID.hIcon:=Application.Icon.Handle;
NID.szTip:= '工程一 ';
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 TForm1.WMTrayMessage(var msg: TMessage);
var
p:TPoint;
begin
if msg.LParam=WM_LButtonDown then
begin
ShowWindow(Application.Handle,SW_Show);
Application.Restore;
end
else if msg.LParam=WM_RButtonDown then
begin
GetCursorPos(p);
PopupMenu1.Popup(p.x,p.y);
end;
end;procedure TForm1.FormCreate(Sender: TObject);
//var Owner : HWnd;
begin
//Owner:=GetWindow(Handle,GW_OWNER);
// ShowWindow(Owner,SW_HIDE);Application.OnMinimize:=AppMinimized;
AppMinimized(nil);end;procedure TForm1.FormDestroy(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE,@NID);
end;procedure TForm1.N21Click(Sender: TObject);
begin
ShowWindow(Application.Handle,SW_Show);
Application.Restore;end;procedure TForm1.rer1Click(Sender: TObject);
begin
close;
end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
// showmessage('工程一')
end;end.
解决方案 »
- 浏览器的标题栏的效果是怎么做出来的(附图片)
- 请问不小心把一个组件删除了要怎么把它复原?
- 请教如何实现cxDateEdit控件只能通过下拉框选择日期,无法再编辑框输入日期
- 从一个表的部分字段加上今天的日期插入到另一个表的一些字段,该SQL语句怎样写
- 兄弟姐妹们,怎么搜索这里的帖子呀?????
- 轻松拿分,请来看看!
- 从网上下载了一些.PDF 格式文档,如何使安全保护设置失效?
- 关于DELHPI中字符串的问题
- [散分] 大家都来答,大家都能答,顶者都有分.
- 用SQL查询出来的记录,怎么显示?
- 大哥:怎么在Delphi中添加图片呀?
- 下载的pdf格式的delphi 书在简体win2k下不能看,为什么??
procedure TControlE.MinImageClick(Sender: TObject);
var
Icon:TIcon;
iconpath:string; //图标文件路径
begin
iconPath:=File_path+'\Cool.ico';
listfrm.Hide;
Icon:=TIcon.Create; //Icon变量用来装入任务栏图标
Icon.LoadFromFile(iconpath);
new(pTaskBarIcon);
with pTaskBarIcon^ do //给pTaskBarIcon赋值
begin
cbSize:=sizeof(TNotifyIconData);
Wnd:=ControlE.WindowHandle;
uID:=0;
uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallbackMessage:=WM_USER; //当在任务栏图标上发生鼠标事件时,// 向Windows发送标准消息WM_USERhIcon:=Icon.Handle;StrCopy(szTip,'酷音酷放');end;Shell_NotifyIcon(NIM_ADD,pTaskBarIcon); //给通知域添加图标ControlE.Visible:=false; //使音乐播放器窗口不可见
// inherited; //将继承Windows处理WM_SYSCOMMAND时的方法end;
这是我自己做一个多功能的媒体播放器时说使用的方法
不知道你还需不需要自定义弹出菜单的源代码!