您的位置:首页 > 其它

烦人的GDI+bug(icon转bitmap居然丢失alpha通道)

2009-11-06 15:41 525 查看
昨天做一个新功能,获取桌面的图标并在自己的窗口上显示。开始做了一个demo,wtl的gdi实现的界面一切顺利,但换到gdi+的工程里面的时候,在绘制icon的时候遇到了麻烦,图标显示直接把alpha通道给丢失了,图标出现了好多黑色的阴影。
网上搜索了半天,发现很多人都遇到了这个问题Bitmap::FromHICON转化之后造成的icon的alpha通道丢失了,这种情况出现很多是绘制imagelist里面的item。网上有人提到是“问题在bitmap=Gdiplus::Bitmap::FromHICON(rInfo.hIcon); ,在这里对alpha的处理有问题,再转换成Format32bppArgb格式的就可以了。”,很遗憾转换完成之后还是老样子,猜想FromHICON已经把数据丢失了,再转似乎也不会有什么意义了,不知道是不是还有其他的转换方式。网上又搜了半天,老外也提到了一些解决办法,基本上都是围绕Format32bppArgb的方案,尝试之后还是没有效果。
最终,不得已之下,只好在绘制icon的时候换成gdi了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: