Мигрированный проект C++ Builder теряет прозрачность списка изображений

Я обновился с C++ Builder XE7 до C++ Builder Berlin, и у меня есть проект, содержащий около 100 изображений в 6 элементах управления ImageList.

В XE7 прозрачность работала нормально, но после обновления все изображения теперь имеют черный прозрачный фон вместо прозрачности.

Я дважды проверил, что ColorDepth ImageList все еще был cd32bit, и это так. В IDE все выглядит как файл, изображения прозрачные, но как только я запускаю приложение, все изображения имеют черный фон вместо прозрачности.

Черный фон

Я попытался удалить новый TImageList, глубину cd32bit и добавил несколько прозрачных PNG, которые отлично работали в XE7. Тем не менее они отображаются с черным фоном в среде выполнения, но не в IDE.

1 ответ

Решение

Наконец-то разобрался!
Я отметил, что все элементы управления имеют старый стиль Win XP, поэтому я подозревал, что загружена неправильная версия Comctl32.dll, вопрос только в том, как ее изменить?

Проект очень старый и был создан до того, как C++ Builder поддерживал манифесты. Но в настройках проекта в разделе "Приложение" вы найдете раздел "Файл манифеста".

Установите для него значение "Автогенерация" и установите флажок "Включить темы времени выполнения", и он будет использовать правильную версию Comctl32.dll.

Другие вопросы по тегам