NOTIFYICONDATAA.dwInfoFlags的研究----更换系统托盘气泡的图标
2006-08-02 15:36
501 查看
今天在调试代码的时候突然想要把托盘气泡的图标改一下,可是在网上找了半天也没看到有相关的文章,于是自己研究起来。我发现网上的文章都是一些描述如何显示气泡的,但是没有提到如何设置气泡的图标,通过查看SHELLAPI.H 文件,知道NOTIFYICONDATAA.dwInfoFlags就是气泡图标的值。但是也只有NIIF_NONE(无) NIIF_INFO(信息) NIIF_WARNING(警告) NIIF_ERROR(错误) NIIF_ICON_MASK(保留)几种。难道就没办法换其他的了吗?继续观察几个NIIF值的定义部分,如下:
// Notify Icon Infotip flags
#define NIIF_NONE 0x00000000
// icon flags are mutually exclusive
// and take only the lowest 2 bits
#define NIIF_INFO 0x00000001
#define NIIF_WARNING 0x00000002
#define NIIF_ERROR 0x00000003
#define NIIF_ICON_MASK 0x0000000F
#if (_WIN32_IE >= 0x0501)
#define NIIF_NOSOUND 0x00000010
#endif
#endif
发现NIIF_系列只定义了0x00000000~0x00000003,0x0000000F和0x00000010,那当中还有很大一部份缺少的呢?带着这个疑问我尝试着在我的程序内使用NOTIFYICONDATAA.dwInfoFlags = 0x00000004~0x0000000E等值,发现一个新图标:0x00000007(问号)。可是就这样完了吗?我发现NOTIFYICONDATAA结构还有个变量hIcon,这个在一般的文章中定义的是程序的图标,难道...?在尝试几段代码后发现:0x00000004其实是就是自定义类型,自定义的图标就是NOTIFYICONDATAA.hIcon中Load的图标,现在一切都变的简单了,只要使用0x00000004就可以随意更换气泡的图标啦~~~
// Notify Icon Infotip flags
#define NIIF_NONE 0x00000000
// icon flags are mutually exclusive
// and take only the lowest 2 bits
#define NIIF_INFO 0x00000001
#define NIIF_WARNING 0x00000002
#define NIIF_ERROR 0x00000003
#define NIIF_ICON_MASK 0x0000000F
#if (_WIN32_IE >= 0x0501)
#define NIIF_NOSOUND 0x00000010
#endif
#endif
发现NIIF_系列只定义了0x00000000~0x00000003,0x0000000F和0x00000010,那当中还有很大一部份缺少的呢?带着这个疑问我尝试着在我的程序内使用NOTIFYICONDATAA.dwInfoFlags = 0x00000004~0x0000000E等值,发现一个新图标:0x00000007(问号)。可是就这样完了吗?我发现NOTIFYICONDATAA结构还有个变量hIcon,这个在一般的文章中定义的是程序的图标,难道...?在尝试几段代码后发现:0x00000004其实是就是自定义类型,自定义的图标就是NOTIFYICONDATAA.hIcon中Load的图标,现在一切都变的简单了,只要使用0x00000004就可以随意更换气泡的图标啦~~~
相关文章推荐
- [MFC]系统托盘操作类,图标,气泡等
- 【Win32 API】在系统托盘显示图标和弹出气泡
- c# winform notifyIcon 系统托盘图标闪动 气泡提示
- 【Vegas改编】Winform最小化,系统托盘出现图标,并气泡显示tip
- 使用C++builder的TTrayIcon制作系统托盘动态图标和气泡提示
- 添加系统托盘图标
- VC++6.0中实现将应用程序的图标加入到Windows的系统托盘中
- 系统托盘图标
- 隐藏Windows系统托盘图标
- VC 系统托盘、气泡提示
- Ubuntu:如何显示系统托盘图标(systray)
- QSystemTrayIcon增加系统托盘图标Demo
- 用MASM32写的 系统托盘图标管理员 TrayIconMan 0.0.0003
- Ubuntu Unity系统托盘显示所有图标
- VC6.0下实现系统托盘的气泡提示窗口(Use NIIF_INFO)
- ubuntu 12.04系统托盘不显示ibus输入法图标的解决方法
- Ubuntu-Desktop-12.04 如何设置系统托盘图标
- 使用Win32 API做个系统托盘图标
- 找回Redflag6.0下弄丢的输入法系统托盘图标
- Ubuntu修改系统及软件托盘相关图标