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

如何在mfc中更改CImage对象的背景色?,mfc,dialog,Mfc,Dialog,我有一个包含一些对话框的windows应用程序。对话框是使用mfc构建的。我正在使用CImage::Draw()方法在每个对话框上绘制一些图像(.png)。我想说的是,我没有在对话框中使用任何图片控件来渲染这些图像,而是在运行时使用一些句柄加载它们。直到一切正常为止。现在,当图像加载时,这些图像的背景是白色的。资源文件中的图像没有白色背景。我的问题是如何在对话框上绘制这些图像时更改其背景?我希望图像的背景与我正在使用的默认对话框的颜色相似。 还有一个问题.png图像在windows server

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

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


编辑:对于8位成像仪,我认为需要调用。对于32位图像,此函数可能会起作用:

png图像仅为32位。此外,图像是背景。我确信这些图像是透明的。因为在其他程序中,相同的图像正在进行gud。我犯了个错误。加载图像时没有其他方法可以更改图像的背景吗?