Черный фон иконок в ListView. Как избавиться?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
e-raven
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 24.08.2005 (Ср) 11:02

Черный фон иконок в ListView. Как избавиться?

Сообщение e-raven » 24.08.2005 (Ср) 11:03

Потребовался список с изображениями, ничего лучше ListView не нашел, но столкнулся с проблемой черного фона на некоторых изображениях. Иконки из одной коллекции. Но почему-то часть в списке нормально отображается, а часть с этим фоном. Использовал и формат bmp и gif - одна фигня. В ImageList иконки добавлялись одновременно. Использование MaskColor в ImageList не помогает. В чем может быть дело?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.08.2005 (Ср) 12:49

Мой image list в Кирпичах посмотри.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

e-raven
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 24.08.2005 (Ср) 11:02

Сообщение e-raven » 24.08.2005 (Ср) 16:28

Как обойти возникшую проблему, я понял. А как разрешить её? Из-за чего всё-таки темный фон иконок в ListView?

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 25.08.2005 (Чт) 18:36

Кинь сюда две иконки (нормальную и чернеющую). У меня тоже такое было, не помню как избавился, но там действительно в самих файлах проблемма была.
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

e-raven
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 24.08.2005 (Ср) 11:02

Сообщение e-raven » 26.08.2005 (Пт) 8:38

О маске в ImageList я наврал: её использование помогает, просто я неверно цвет указывал. Это решение проблемы, но причина появления черного фона по-прежнему непонятна. Выкладываю три иконки: желтая нормально отображается, а зеленая и красная на черном фоне.
Вложения
images.rar
Три gif файла, два из которых отображаются в ListView на черном фоне.
(1.05 Кб) Скачиваний: 31

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 27.08.2005 (Сб) 2:03

Ага! Глюк в гиф-ках! Вот с приатаченными BMP работает "на ура".
ЕМНИП, в С и в Делфях в ИмеджЛист вообще нельзя напрямую ГИФ-ку засунуть, и как по мне, в VB тоже этого лучше не делать..

-
Работоспособность проверялась кодом:
Код: Выделить всё
Private Sub Form_Load()
    ImageList1.MaskColor = vbMagenta
    ImageList1.UseMaskColor = True
    With ListView1
        Set .SmallIcons = ImageList1
        .View = lvwReport
        .ColumnHeaders.Add , , "test"
        .ListItems.Add , , 1, , 1
        .ListItems.Add , , 2, , 2
        .ListItems.Add , , 3, , 3
    End With
End Sub


О маске в ImageList я наврал: её использование помогает, просто я неверно цвет указывал.

В том-то и дело. Так уж наверное Gif устроен, что при создании картинки прозрачный фон выбирается по каким-то критериям (возможно это зависит от программы-редактора)
И маска тут не поможет, т.к. первые две картинки имеют черный фон (так уж они созданы), а желтая - белый.
Это хорошо видно, если выбрать для ListView другой BackColor.
Или: при выделении отчетливо видно, что красная и зеленая имеют круглую форму, а желтая выделяется целиком. (это с ImageList.MaskColor = &H00000000&)
Такчто юзай БМП.
Вложения
REimages.rar
Те же картинки, но в BMP (256 color, фон - vbMagenta)
(2.36 Кб) Скачиваний: 39
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

e-raven
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 24.08.2005 (Ср) 11:02

Сообщение e-raven » 29.08.2005 (Пн) 11:45

Спасибо, всё заработало!!! С gif и черным цветом в качестве MaskColor тоже работает. А ведь я пробовал конвертировать в bmp и почему-то сразу от этого отказался. Надо бы где-нибудь про gif почитать. Делая в ArtIcons фон gif-иконок прозрачным, в ListView всё равно получал черный цвет. Странно всё это. Ладно, ещё раз спасибо за помощь!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 2

    TopList