如何在mfc中更改CImage对象的背景颜色?

时间:2012-09-26 15:54:24

标签: mfc dialog

我有一个包含一些对话框的Windows应用程序。对话框已使用mfc构建。我正在使用CImage :: Draw()方法在每个对话框上绘制一些图像(.png)。我想提一下,我没有在对话框上使用任何图片控制来渲染这些图像而是我在运行时使用一些句柄加载它们。这一切都没问题。现在加载图像时,这些图像的背景变为白色。资源文件中的图像没有白色背景。我的问题是如何在对话框上绘制这些图像时更改这些图像的背景?我希望图像的背景类似于我正在使用的默认对话框的颜色。 还有一个问题是.png图像在windows server 2008 R2机器的对话框中渲染效果不佳(图像分散)。可能的补救措施是什么? 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您的PNG图像显然不是32位。您需要一个Alpha通道和一个透明背景。打开你的图像,例如Paint.NET。我打赌你的背景也是白色的!关于图像质量,你是否在绘图时拉伸图像?

编辑:对于8位成像器,我认为需要调用SetTransparentColor。对于32位图像,也许这个函数可以执行:TransparentBlt