Delphi笔记-在任务栏通知区中加图标
来源:互联网 发布:睢阳保卫战知乎 编辑:程序博客网 时间:2024/05/16 07:35
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笔记-在任务栏通知区中加图标
- Delphi 在任务栏隐藏程序图标
- Delphi 模拟鼠标在任务栏的图标上面逐个移动
- Delphi产生任务栏图标【TNotifyIconData】
- 任务栏通知区域小图标的编程实践(DELPHI版)
- Delphi 实现任务栏多窗口图标显示
- 节约内存:清除任务栏“自定义通知”里的图标
- 如何清除任务栏中自定义通知里的图标
- 如何关闭任务栏中chrome浏览器的通知图标
- windows任务栏下的通知图标不见了怎么解决?
- Windows2008R2遇到任务栏通知图标不见的问题
- win10 关闭 任务栏 操作中心 通知栏 图标
- win10 关闭 任务栏 操作中心 通知栏 图标
- 在任务栏显示“显示桌面”图标
- 在任务栏右下角填加图标
- C# 在任务栏中显示应用程序图标
- 在任务栏中显示音量图标
- 隐藏程序在任务栏的图标
- 三国人物启示录
- UDP收发数据包
- [C++] Hex string convert to integer with stringstream
- 自动提示的文本框(加Ajax异步交互)
- sscanf 用法详解
- Delphi笔记-在任务栏通知区中加图标
- Android Permission大全1.0最终版本
- Oracle: hibernate 的主键生成策略
- 如何从托管代码调用DLL中的非托管代码
- 软件测试配置管理的概念
- 关于“读入未知数目的输入”问题
- PageRank算法
- TCP(SOCKETS)编程 C/C++实现
- 扇入Fan-in和扇出Fan-out