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

标签 .net windows winapi notification-area balloon-tip

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

Standard Baloon Tip
图 1:标准气球工具提示



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

Windows Update Tip 图 2:Windows 更新气球工具提示


Driver Installation Tip
(来源:microsoft.com)

图 3:硬件驱动安装气球工具提示


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



仔细观察图 2、图 3 和图 4 会发现它们不是标准的气球工具提示!

Fig2 具有不同的形状,可能是由于设置了 Region 属性。它还有一个比标准图标大得多的自定义图标 ToolTipIcon .

Fig3 使用标准形状(我认为)但它有一个自定义图标,不用说比默认图标大 ToolTipIcon尺寸。

Fig4 使用标准 ToolTipIcon但它有不同的形状。


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

最佳答案

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

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

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

关于.net - 如何在通知区域创建丰富的工具提示和丰富的气球,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8836463/

相关文章:

c# - VS2005 库

c# - 如何按多个通用 linq 表达式分组

windows - 使用两个 VirtualBox 主机调试 Windows 内核

windows - 如何关闭 DwmExtendFrameIntoClientArea?

java - 如何从 Java 应用程序监听 Windows 事件?

.Net Core 项目中的 .Net Framework Nuget 包

.net - 如何从Mac卸载.NET Core 1.0.0?

c - FTDI。需要了解有关 FT_Write() 函数的更多详细信息

c++ - 如何在 WM_COMMAND 中检索鼠标位置

c++ - 在哪里可以找到窗口消息 WM_UAHDRAWMENUITEM (0x92) 的定义