3

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

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

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

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

4

2 回答 2

4

要立即隐藏气球,请将 的szInfo成员设置NOTIFYICONDATA为空字符串,例如nid.szInfo[0] = 0;并调用Shell_NotifyIcon( NIM_MODIFY, &nid )

于 2009-05-24T00:53:37.783 回答
3

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

于 2009-05-23T23:12:40.110 回答