【问题标题】:Find out the background color of Windows system tray to select the tray icon for my app找出 Windows 系统托盘的背景颜色以选择我的应用程序的托盘图标
【发布时间】:2011-12-18 08:53:02
【问题描述】:

我正在编写一个 Windows 应用程序,它在 Windows 系统托盘(系统时钟旁边)上显示其托盘图标。问题是我的图标在某些背景下看起来很棒,而在其他背景下看起来很糟糕。可以通过在图标周围创建阴影或轮廓来解决此问题,但托盘图标只有 16x16 像素,这使得前者很难实现。

所以我很好奇,有没有办法找出系统托盘背景是什么,我的图标显示在上面,例如 RGBA 平均值? (我知道它现在不是纯色,因此是“平均”这个词。)如果是这样,我确信有一种算法可以确定它是明亮(灰色,银色)还是深色背景(蓝色或黑色) )。这将让我加载托盘图标的深色或亮色版本。

【问题讨论】:

  • 太糟糕的图标列表不像 Emacs 的面孔,您可以在其中为浅色/深色背景指定不同的变体。 (现在做这样的事情为时已晚,因为应用程序不会告诉 Windows 他们将在什么样的背景上绘制图标,并且它可能不适用于绘制在图像上的图标,例如在带有壁纸的桌面上,无论如何...)

标签: windows colors icons system-tray trayicon


【解决方案1】:

由于您只提供了一个图标,因此您无法选择绘制应该显示图标的区域。在 Aero 关闭的情况下,颜色预计为 GetSysColor(COLOR_BTNFACE),否则事情会变得更加复杂并且涉及透明度,因此应用栏下方的窗口实际上会影响系统托盘图标周围的背景颜色。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 2012-09-16
    相关资源
    最近更新 更多