Dot-Net

如何在通知區域創建豐富的工具提示和豐富的氣球

  • August 16, 2019

我一直在想,每當你呼叫類的ShowBalloonTip方法時NotifyIcon,你會得到一個像這樣的氣球工具提示:

標準氣球頭

圖 1:標準氣球工具提示

某些應用程序和 Microsoft 產品能夠顯示的不僅僅是那些“簡單”的氣球提示。

以下是一些範例:

Windows 更新提示 圖 2:Windows 更新氣球工具提示

驅動安裝提示

(來源:microsoft.com

圖 3:硬體驅動程序安裝氣球工具提示

USB 安全移除

圖 4:硬體移除工具提示(程序:USB 安全移除)

仔細查看圖 2、3 和 4 會發現它們不是標準的氣球工具提示!

Fig2具有不同的形狀,可能來自設置Region屬性。它還有一個比標準ToolTipIcon大得多的自定義圖示。

Fig3使用標準形狀(我認為),但它有一個自定義圖示,不用說它大於預設的ToolTipIcon大小。

Fig4使用標準的ToolTipIcon,但它具有不同的形狀。

我的問題是如何創建在 .NET 的通知區域中看到的任何“豐富”氣球工具提示?我可以處理 WinAPI 以及它可以產生必要的輸出。

您必須使用 Win32 函式Shell_NotifyIcon。您可以將NOTIFYICONDATA結構的dwInfoFlags成員設置為 NIIF_USER,以便為氣球工具提示使用自定義圖示。

在 Windows XP Service Pack 2 和更高版本上,您可以使用hIcon成員來指定自定義圖示。

在 Windows Vista 和更高版本上, NOTIFYICONDATA 結構包含附加成員hBalloonIcon。如果您已將cbSize成員設置為擴展 NOTIFYICONDATA 結構的正確大小,則可以使用此成員指定自定義圖示。

引用自:https://stackoverflow.com/questions/8836463