0

在 MFC 中,当我创建图像列表时,使用这些标志:

m_ImageListThumb.Create(0x20, 0x20, ILC_COLORDDB | ILC_COLOR32, 0, 1);

http://i.stack.imgur.com/ZYEQ9.png

m_ImageListThumb.Create(0x20, 0x20, ILC_COLOR32, 0, 1);

这种方式正确显示

http://i.stack.imgur.com/nyTSj.png

我似乎需要使用 ILC_COLORDDB,否则有时用 alpha 突出显示图像根本不会显示突出显示的蓝色。但我的问题是如何将蓝色叠加层修复为平滑,因此在使用 ILC_COLORDDB 时它不是颗粒状的。

如何解决此问题,以便 ILC_COLORDDB 在单击时提供漂亮的平滑蓝色高光。

4

1 回答 1

0

ILC_COLORDDB并且ILC_COLOR32是互斥的,您不能同时使用这两个标志。看看他们的价值观:

#define ILC_COLORDDB 0x000000FE
#define ILC_COLOR32  0x00000020

如果ILC_COLORDDB指定,则图像列表使用CreateCompatibleBitmap与当前显示兼容的位图创建,因此您从中获得的结果将随当前显示设置而变化。

于 2013-09-25T22:30:22.127 回答