如何在Windows的任务栏的托盘上加一个快捷图标
来源:互联网 发布:超级基因优化 编辑:程序博客网 时间:2024/05/01 20:21
Tray中文直译为“托盘”,不过我个人认为译作“状态区”也许更好。Tray也称作SysTray、TrayIcon、NotifyIcon、Status Area等,它是Windows 95/NT的任务条上一个特殊区域(下图),许多软件运行时在Tray中加入自己的图标,如果用户点击这个图标,软件会实现相应的功能,如果用户鼠标箭头在图标上停留,Windows 95会显示出相应的工具提示(ToolTip)。这个区域的另一个特殊之处在于你可以从资源管理器内拖文件然后放在这个区域。正是由于这些特性,Tray编程在Windows 95/NT中有特殊的地位。
Tray编程主要包括三个主要方面:图标、工具提示和消息。它属于Shell编程的一部分,主要是利用Shell API中的Shell_NotifyIcon函数完成的。Shell_NotifyIcon函数是这样定义的:
WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(
DWORD dwMessage, // message dentifier
PNOTIFYICONDATA pnid // pointer to structure
);
dwMessage有三种取值:NIM_ADD、NIM_DELETE和NIM_MODIFY,分别表示添加、删除和修改指定的图标。pnid 是一个指向NOTIFYICONDATA 结构的指针,它的内容因dwMessage参数而异。NOTIFYICONDATA 结构的定义如下:
typedef struct _NOTIFYICONDATA { // nid
DWORD cbSize;// 结构所占的字节数
HWND hWnd; // 接受Tray图标消息的窗口句柄
UINT uID; // 由应用程序定义的图标识别符
UINT uFlags; // 标志
UINT uCallbackMessage; // 应用程序定义的消息
HICON hIcon; // Tray图标的句柄
char szTip[64]; // 工具提示字符串
} NOTIFYICONDATA;
这个结构中的uFlags很重要,它有三种取值:NIF_ICON、NIF_MESSAGE和NIF_TIP,分别表示hIcon、uCallbackMessage和szTip参数有效,用来修改图标、消息和工具提示。这三个取值可以同时使用(三个参数相或),也可以单独使用。为了实现对用户鼠标操作的响应,需要在程序中处理uCallbackMessage所定义的消息,该消息的长参数lParam包含Win32所定义的鼠标消息,如果有多个图标,短参数wParam表示图标识别符。在Borland C++ 5.0的EXAMPLES/WIN95/TRAYNOT目录下有一个简单的示例程序(这是Win32 SDK的示范程序,一般的C语言软件包都包括此程序)详细地展示了具体操作,参照前面的介绍,相信你可以轻松地完成自己的程序。
Tray编程主要包括三个主要方面:图标、工具提示和消息。它属于Shell编程的一部分,主要是利用Shell API中的Shell_NotifyIcon函数完成的。Shell_NotifyIcon函数是这样定义的:
WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(
DWORD dwMessage, // message dentifier
PNOTIFYICONDATA pnid // pointer to structure
);
dwMessage有三种取值:NIM_ADD、NIM_DELETE和NIM_MODIFY,分别表示添加、删除和修改指定的图标。pnid 是一个指向NOTIFYICONDATA 结构的指针,它的内容因dwMessage参数而异。NOTIFYICONDATA 结构的定义如下:
typedef struct _NOTIFYICONDATA { // nid
DWORD cbSize;// 结构所占的字节数
HWND hWnd; // 接受Tray图标消息的窗口句柄
UINT uID; // 由应用程序定义的图标识别符
UINT uFlags; // 标志
UINT uCallbackMessage; // 应用程序定义的消息
HICON hIcon; // Tray图标的句柄
char szTip[64]; // 工具提示字符串
} NOTIFYICONDATA;
这个结构中的uFlags很重要,它有三种取值:NIF_ICON、NIF_MESSAGE和NIF_TIP,分别表示hIcon、uCallbackMessage和szTip参数有效,用来修改图标、消息和工具提示。这三个取值可以同时使用(三个参数相或),也可以单独使用。为了实现对用户鼠标操作的响应,需要在程序中处理uCallbackMessage所定义的消息,该消息的长参数lParam包含Win32所定义的鼠标消息,如果有多个图标,短参数wParam表示图标识别符。在Borland C++ 5.0的EXAMPLES/WIN95/TRAYNOT目录下有一个简单的示例程序(这是Win32 SDK的示范程序,一般的C语言软件包都包括此程序)详细地展示了具体操作,参照前面的介绍,相信你可以轻松地完成自己的程序。
- 如何在Windows的任务栏的托盘上加一个快捷图标
- 在windows系统任务栏的托盘中显示图标 c++
- ubuntu取消任务栏上的快捷图标
- 解决Java程序的托盘图标在Windows任务栏重建后丢失的问题(使用SystemTray类创建托盘图标)
- 浅谈c#实现隐藏任务栏图标的Windows托盘程序
- 浅谈c#实现隐藏任务栏图标的Windows托盘程序
- MFC程序任务栏托盘图标的实现
- 如何隐藏一个程序在任务栏上图标
- MFC对话框初始化运行时如何隐藏,托盘图标,任务栏图标的相关问题
- 任务栏程序图标与托盘图标的移动
- 一个优秀的VC++任务栏托盘源码
- 一个优秀的VC++任务栏托盘源码
- 关于对话框最小化到托盘后,点击托盘图标后只在任务栏显示而无法还原窗口的解决方法。
- 隐藏任务栏上的图标
- 用 C# 编写一个停放在任务栏上的图标程序
- 用 C# 编写一个停放在任务栏上的图标程序
- 用 C# 编写一个停放在任务栏上的图标程序
- 将“在任务栏上出现的两个eclipse图标”合为一个
- 如何利用FindWindow()函数查找程序
- letter from jjhou
- 如何用GetWindow函数来列举桌面上的窗口
- 如何列出系统正在进行的程序及强行关闭该程序
- 使用EJB3.O简化EJB开发(一)
- 如何在Windows的任务栏的托盘上加一个快捷图标
- 毕业六年:走遍三企,走向成熟
- 得到一个数据库的用户连接数
- SendMessage() API 函数如何使用
- 创造成功的基本前提
- 今天去南通
- 关于ASP.NET畸形HTTP请求信息泄露漏洞
- 2004年最后一天,一年一个字:闷
- 提问交流专版