ImageList с изображением PNG / альфа-канала

Я не могу понять, как создать элемент управления ImageList с PNG-файлом с альфа-каналом. Я хотел бы использовать его в качестве небольших изображений в моем элементе управления ListView.

Описание того, что я пробовал, кажется ошеломляющим, поскольку я работаю над этим часами. Я искал в Интернете и практически ничего не нашел по этому поводу.

Большинство вещей, которые я пробовал, просто вызывают отображение списка без каких-либо изображений.

Затем я попытался импортировать следующий файл в свой проект в качестве ресурса.

Folders.png

Несмотря на то, что я сказал, что импортирую растровое изображение, средство просмотра ресурсов поместило этот ресурс в раздел под названием PNG. Текущая версия Visual Studio кажется полностью сбитой с толку файлом PNG.

Но сейчас я даже не могу загрузить его в Visual Studio. Я получаю следующую ошибку. Эта ошибка, похоже, исходит от компилятора ресурсов.

ошибка RC2170: растровое изображение res \ Folders.png не в формате 3.00.

Я воссоздал изображение с помощью IconWorkshop — я уверен, что мое изображение в текущем формате. Возможно, слишком актуально для Visual Studio.

Кто-нибудь знает, как использовать изображения PNG / альфа-канала в ImageList / ListView?

1

Решение

Как и предполагал xMRi, я смог сделать это, сохранив свое изображение PNG в виде файла BMP 32-битного / альфа-канала.

Поддержка загруженного ресурса имела некоторые ограничения. Например, CBitmap::GetBitmapDimension вернул пустой прямоугольник. А в Visual Studio отсутствует поддержка альфа-канала и высококачественных растровых изображений.

Тем не менее, если я жестко закодирую размер изображения, это сработает. Мой элемент управления ListView правильно выделяет изображение, когда элемент выбран, без выделения прозрачных областей. Так что альфа-канал был правильно распознан.

0

Другие решения


По вопросам рекламы [email protected]