Imagelist风格//ILC_MASK一点作用没有吧???

mirroatl46 2012-11-18 02:55:20
Imagelist.Create(54,54,ILC_COLOR32 | ILC_MASK,0,0);
//图标背景是蓝色 也没被屏蔽掉呢
...全文
117 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwfgdlc 2012-12-09
  • 打赏
  • 举报
回复
是不是图标本来就是有背景的? 如果是这样还不如直接转成没背景的 记得有这样转换工具.
看不见的裂痕 2012-12-09
  • 打赏
  • 举报
回复
所以,你如果要屏蔽蓝色的背静 ImagelistAdd(&bmp1,RGB(0,0,255)); 这样才是关键方法,缺点是只能屏蔽一个种颜色至透明
看不见的裂痕 2012-12-09
  • 打赏
  • 举报
回复
设置mask的颜色,可以将位图中该颜色透明,否则会有背景色哦 就是说,你用了ILC_MASK后,可以这样做:
m_ImageList.Create(15,15,ILC_COLOR24|ILC_MASK,3,2);
CBitmap bmp1;
bmp1.LoadBitmap(IDB_COMOFF);
m_ImageList.Add(&bmp1,RGB(255,255,255));
看到最后一行Add函数了吗?最后一个参数就是指透明的颜色,表示显示时需要将图片IDB_COMOFF的所有白色透明掉。否则就会有白色底的。 每个图片都是长方形的,你的word图标整个长方形区域都作为有效内容了,自然没有透明的必要。但是,很多图标只是长方形中的某一部分是有意义的,其它都是背景色。将背景色透明是最好的显示效果。因此这个ILC_MASK就帮助你实现它。否则即使Add时指定了透明色也不起作用。

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧