0

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

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

4

1 回答 1

1

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

于 2011-10-30T21:29:30.470 回答