Мигрированный проект 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.