如何在通知区域中创建丰富的工具提示和丰富的气球

Ale*_*fie 10 .net windows winapi notification-area balloon-tip

我一直想知道,每当你调用类的ShowBalloonTip方法时NotifyIcon,你会得到一个这样的气球工具提示:

标准气球提示
图1:标准气球工具提示



某些应用程序和Microsoft产品能够显示的不仅仅是那些"简单"的气球提示.
以下是一些示例:

Windows Update提示 图2:Windows Update气球工具提示


驱动程序安装提示http://i.msdn.microsoft.com/dynimg/IC295019.png图3
:硬件驱动程序安装气球工具提示


USB安全删除
图4:硬件删除工具提示(程序:USB安全删除)



仔细看看图2,3和4,可以看出它们不是标准的气球工具提示!

图2具有不同的形状,可能来自设置Region属性.它还有一个比标准ToolTipIcon大得多的自定义图标.

Fig3使用标准形状(我认为),但它有一个自定义图标,不用说大于默认的ToolTipIcon大小.

图四使用标准ToolTipIcon但它具有不同的形状.


我的问题是如何创建在.NET的通知区域中看到的任何"丰富"气球工具提示?我可以处理WinAPI,它可以产生必要的输出.

Nor*_*elm 5

您必须使用Win32函数Shell_NotifyIcon.您可以将NOTIFYICONDATA结构的dwInfoFlags成员设置为NIIF_USER,以便为气球工具提示使用自定义图标.

在Windows XP Service Pack 2及更高版本中,您可以使用hIcon成员指定自定义图标.

在Windows Vista及更高版本中,NOTIFYICONDATA结构包含附加成员hBalloonIcon.如果已将cbSize成员设置为扩展NOTIFYICONDATA结构的正确大小,则可以使用此成员指定自定义图标.