如何隐藏任务栏气球?

时间:2009-05-23 22:29:49

标签: winapi taskbar tooltip balloon

强制任务栏图标显示气球工具提示非常容易:我需要做的就是在调用Shell_NotifyIcon(NIM_MODIFY,...)时设置NIF_INFO标志,然后出现气球,没问题。

现在,我希望能够在不再需要它时隐藏气球,但我找不到办法做到这一点。我尝试清除NIF_INFO标志并调用Shell_NotifyIcon(NIM_MODIFY,...),但气球仍然存在。几秒钟之后,它确实会消失,但这不是我想要的:当我的程序认为它应该被隐藏时,我想立即隐藏它。

使气球消失的唯一方法似乎是破坏图标,然后再将其添加到任务栏,但这很难看。

是否可以在不重新创建任务栏图标的情况下隐藏气球?感谢。

2 个答案:

答案 0 :(得分:4)

要立即隐藏气球,请将szInfo的{​​{1}}成员设置为空字符串,例如NOTIFYICONDATA并致电nid.szInfo[0] = 0;

答案 1 :(得分:3)

我愿意强行删除通知气球并不是用户的最佳利益。有时,用户不会立即查看通知,并且在几秒钟内发生的缓慢消失使他们有机会在气球消失之前查看。从可用性的角度来看,显示气球应该是应用程序的责任,但是气球的移除应该是用户的责任。否则,您可能隐藏了他们实际感兴趣的信息,并且通过立即强行隐藏它,您完全消除了用户在气球消失期间的“最后机会”。