迁移的 C++ Builder 项目失去图像列表透明度

Migrated C++ Builder project lose Imagelist transparency

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

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

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

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

中却没有

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

该项目很旧,是在 C++ Builder 支持清单之前创建的。但是在项目选项中,在应用程序下你会找到一个名为 "Manifest File".

的部分

将其设置为 "Auto Generate" 并勾选复选框 "Enable Runtime Themes" 它将使用 Comctl32.dll

的正确版本