我不能为我的生活弄清楚如何使用带alpha通道的PNG文件创建ImageList控件。我想将它用作ListView控件中的小图像。
描述我尝试过的东西似乎势不可挡,因为我已经工作了好几个小时了。我在网上搜索过,几乎找不到任何内容。
我尝试过的大多数事情都会导致列表视图无任何图像显示。
然后我尝试将以下文件作为资源导入我的项目。
即使我说我正在导入Bitmap,资源查看器也会将此资源放入名为PNG的部分。当前版本的Visual Studio似乎完全被PNG文件困惑。
但是现在我甚至无法将其加载到Visual Studio中。我收到以下错误。此错误似乎来自资源编译器。
错误RC2170:位图res \ Folders.png不是3.00格式。
我使用IconWorkshop重新创建了图像 - 我非常确定我的图像是当前格式的。对于Visual Studio来说可能太过分了。
有人知道如何在ImageList / ListView中使用PNG / alpha通道图像吗?
答案 0 :(得分:0)
正如xMRi建议的那样,我能够通过将我的PNG图像保存为32位/ alpha通道BMP文件来完成这项工作。
对加载的资源的支持有一些限制。例如,CBitmap::GetBitmapDimension
返回一个空矩形。在Visual Studio中不存在对alpha通道和高质量位图的支持。
尽管如此,如果我硬编码图像大小,它确实有效。我的ListView控件正确选中项目时突出显示图像而不突出显示透明区域。因此alpha通道被正确识别。