0

我从 C++ Builder XE7 升级到 C++ Builder Berlin,我有一个项目,在 6 个 ImageList 控件中包含大约 100 个图像。

在 XE7 中,透明度工作正常,但升级后所有图像现在都有黑色纯色背景而不是透明度。

我仔细检查了 ImageList 的 ColorDepth 是否仍然是 cd32bit,确实如此。一切在 IDE 中看起来都是文件,图像是透明的,但是一旦我运行我的应用程序,所有图像都有黑色背景而不是透明度。

黑色背景

我尝试删除一个新的 TImageList,cd32 位深度,并添加了一些在 XE7 中运行良好的透明 PNG:s。它们在运行时仍然显示为黑色背景,但在 IDE 中却没有。

4

1 回答 1

0

终于想通了!
我注意到所有控件都是旧的 Win XP 样式,所以我怀疑加载了错误版本的 Comctl32.dll,问题只是如何更改它?

该项目非常古老,是在 C++ Builder 支持的清单之前创建的。但是在项目选项中,在应用程序下,您会找到一个名为“清单文件”的部分。

将其设置为“自动生成”并勾选“启用运行时主题”复选框,它将使用正确版本的 Comctl32.dll

于 2018-03-21T11:08:21.680 回答