强制任务栏图标显示气球工具提示非常容易:我需要做的就是在调用Shell_NotifyIcon(NIM_MODIFY,...)时设置NIF_INFO标志,然后出现气球,没问题。
现在,我希望能够在不再需要它时隐藏气球,但我找不到办法做到这一点。我尝试清除NIF_INFO标志并调用Shell_NotifyIcon(NIM_MODIFY,...),但气球仍然存在。几秒钟之后,它确实会消失,但这不是我想要的:当我的程序认为它应该被隐藏时,我想立即隐藏它。
使气球消失的唯一方法似乎是破坏图标,然后再将其添加到任务栏,但这很难看。
是否可以在不重新创建任务栏图标的情况下隐藏气球?感谢。
答案 0 :(得分:4)
要立即隐藏气球,请将szInfo
的{{1}}成员设置为空字符串,例如NOTIFYICONDATA
并致电nid.szInfo[0] = 0;
。
答案 1 :(得分:3)
我愿意强行删除通知气球并不是用户的最佳利益。有时,用户不会立即查看通知,并且在几秒钟内发生的缓慢消失使他们有机会在气球消失之前查看。从可用性的角度来看,显示气球应该是应用程序的责任,但是气球的移除应该是用户的责任。否则,您可能隐藏了他们实际感兴趣的信息,并且通过立即强行隐藏它,您完全消除了用户在气球消失期间的“最后机会”。