Delphi笔记-在任务栏通知区中加图标
2010-09-08 00:01
260 查看
Delphi笔记-在任务栏通知区中加图标
1.实现该功能要用到Shell_NotifyIconA()函数,它在ShellAPI单元中定义,所以要先用uses语句将其包含进去。
2.定义全局常量:
const
TrayIconMsg=wm_user+1;//自定义消息常量,当右击任务栏通知区图标时触发的消息的处理函数由该常量来指点定
iid:=100;//好像没什么用处
3.在窗体类中的private部分中定义自已的消息处理函数
procedure TrayIconMessage(var message:TMessage);message TrayIconMsg;//两个分号之间的字段表示该消息处理函数的触发是由TrayIconMsg常量来指定的
4.实现消息处理函数:
procedure TForm1.TrayIconMessage(var message:TMessage);//注意,在实现部分不用加上message TrayIconMsg
var MsgOutPos:TPoint;//用来存放右击事件发生时,鼠标的位置
begin
inherited;//进行默认处理
if(message.lParam=wm_rButtonUp)then //表示按下右键后放开,就执行以下任务
begin
GetCursorPos(MsgOutPos);//取得鼠标的位置
PopupMenu1.Popup(MsgOutPos.x,MsgOutPos.y);//弹出右键菜单
end;
message.Result:=0;//不知有什么用
end;
5.在窗体类的public部分中加入一个成员变量:
TrayIcon:TNotifyIconDataA;
6.实现在任务栏通知区中加入图标:
procedure TForm1.Button1Click(Sender:TObject);
begin
TrayIcon.cbSize:=sizeof(TNotifyIconDataA);//TrayIcon是TNotifyIconDataA记录类型,cbSize是该记录的长度
TrayIcon.Wnd:=Form1.Handle;//Wnd指向的是要调用Shell_NotifyIconA()函数的窗口的Handle
TrayIcon.uID:=iid;//应用程序所定义的任务栏通知区图标的标识符
TrayIcon.uFlags:=NIF_ICON+NIF_TIP+NIF_MESSAGE;//uFlags指定该记录中哪些项目有效,若有NIF_ICON则hIcon有效,若有NIF_TIP则szTip有效,若有NIF_MESSAGE则uCallbackMessage有效
TrayIcon.uCallbackMessage:=TrayIconMsg;//uCallbackMessage指定将触发的消息送给哪个消息处理函数
TrayIcon.hIcon:=Application.Icon.Handle;//hIcon指定放在任务栏通知区中的图标是什么
TrayIcon.szTip:='右击打开快捷菜单';//szTip指定当鼠标停留在任务栏通知区中的图标上时出现的提示是什么
Shell_NotifyIconA(NIM_ADD,@TrayIcon);//调用该函数将会在任务栏通知区中放入图标,第一个参数有3个值:NIM_ADD,表示增加图标;NIM_MODIFY,表示修改已有的图标;NIM_DELETE,表示删除图标
end;
相关文章推荐
- 任务栏通知区域小图标的编程实践(DELPHI版)
- windows任务栏下的通知图标不见了怎么解决?
- win7隐藏任务栏图标和通知
- Delphi 实现任务栏多窗口图标显示
- Delphi 模拟鼠标在任务栏的图标上面逐个移动
- 如何为任务栏美容清除Win7通知区无效图标
- Delphi TrayIcon任务栏图标毛边问题[部分解决]
- 任务栏的通知区域的图标模糊的问题之一
- Delphi 在任务栏隐藏程序图标
- win7笔记本任务栏通知区域里电源图标不见或呈灰色的解决方法
- 安卓学习笔记---Android通知栏微技巧,通知栏图标在sdk21以上及以下的区别
- Delphi产生任务栏图标【TNotifyIconData】
- Delphi 实现任务栏多窗口图标显示(使用WS_EX_APPWINDOW风格)
- Win7删除桌面右下角任务栏通知区域带红叉的小白旗图标的方法
- Delphi中隐藏任务栏和桌面图标
- Delphi XE4 主窗体隐藏之后任务栏没有图标显示。
- 节约内存:清除任务栏“自定义通知”里的图标
- C#笔记(12)任务栏加图标,点击图标后显示
- 28、Windows API Shell任务栏通知区域(Tray)图标
- 如何清除任务栏中自定义通知里的图标