5

我知道我可以以编程方式使特定窗口的任务栏项目在某些情况发生变化时开始闪烁,但是有什么方法可以在一段时间后以编程方式阻止它闪烁,或者至少有一个键盘快捷键我可以给我的用户以某种方式停止闪烁?

4

3 回答 3

5

控制闪烁的FlashWindowEx函数采用一个FLASHWINFO结构,该结构具有一个 uCount 字段来控制它闪烁的次数。此外,dwFlags 字段的可能值是 FLASHW_STOP 以导致闪烁停止。

编辑:忘记是一个 C# 标记的问题......所以P/Invoke goodness found here

于 2008-08-27T04:02:17.640 回答
3

您可以考虑使用 NotifyIcon,而不是闪烁 tasbar。这将使您可以在系统托盘上放置一些东西(由于执行此操作的应用程序的激增,许多人认为这是邪恶的)。然后,您可以弹出一个气球提示,其中包含实际描述更改本身的任何更改。

要使用: (1) 将 NotifyIcon 拖到您的表单上或在您的应用程序中创建 NotifyIcon notify = new NotifyIcon(); (2)设置icon属性为需要的图片(3)使用Visible属性控制是否在系统托盘上可见(4)调用ShowBalloonText显示弹出文字(限制64个字符)

无论哪种方式,您都应该在程序中添加一个选项,允许最终用户根据他们对这一切的感受打开/关闭此功能。我个人喜欢通知图标,因为气球文本可以说“服务器宕机”之类的内容

于 2008-11-17T22:20:34.483 回答
2

@thomas——令人惊讶的是,微软自己的Windows Vista 用户体验指南同意你的观点......

虽然让背景窗口闪烁其任务栏按钮比让它自动来到顶部并窃取输入焦点要好,但闪烁的任务栏按钮仍然非常具有侵入性。当任务栏按钮闪烁时,用户很难集中注意力,因此您应该假设用户会立即停止他们正在做的事情以使闪烁停止。因此,仅在需要立即注意的情况下保留任务栏闪烁。

当然,谁知道谁真正遵循这些指导方针……或者谁甚至读过它们。:)

于 2008-08-27T17:45:48.753 回答