0

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

4

1 回答 1

1

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

编辑:对于 8 位成像器,我相信需要调用SetTransparentColor。对于 32 位图像,也许这个函数会做:TransparentBlt

于 2012-09-26T21:54:11.807 回答