Значки 16x16, извлеченные LoadResPicture

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Odvin
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 10.05.2004 (Пн) 22:20
Откуда: Москва, Россия

Значки 16x16, извлеченные LoadResPicture

Сообщение Odvin » 14.09.2004 (Вт) 20:26

При извлечении значка размером 16x16 пикселей из ресурсов при помощи функции LoadResPicture он отображается в TreeView размером 32x32 пикселей (т.е. растягивается до этого размера). При загрузке напрямую из файла значка (.ico) все нормально. В чем проблема?

Q2W
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 745
Зарегистрирован: 31.01.2004 (Сб) 20:46
Откуда: Питер

Сообщение Q2W » 15.09.2004 (Ср) 16:14

Запихай в свою иконку и 16х16 и 32х32, тогда в treview всё должно будет быть нормально.
Просто treeview должен отобразить 32х32, а за неимением таковой, он берёт другую и подгоняет её по размерам.
Я знаю верный путь

Odvin
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 10.05.2004 (Пн) 22:20
Откуда: Москва, Россия

Сообщение Odvin » 15.09.2004 (Ср) 17:12

Hell /HiLevel Bot/ писал(а):Просто treeview должен отобразить 32х32, а за неимением таковой, он берёт другую и подгоняет её по размерам.

Почему это он должен отобразить 32x32? В дереве же все значки маленькие.

Да, кстати, посмотрел: в ListView в тех режимах, в которых используются значки 16x16, то же самое. Такое ощущение, что LoadResPicture возвращает значок только 32x32.

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

Сообщение SHURUP » 16.09.2004 (Чт) 13:46

Попробуй вот так:

В рес-файле находятся иконки разных размеров Id = 101, 102 … 109

Код: Выделить всё
Private Sub Form_Load()
ImageList1.ImageHeight = 16
ImageList1.ImageWidth = 16
For i = 1 To 9
    ImageList1.ListImages.Add i, , LoadResPicture(100 + i, vbResIcon)
    TreeView1.Nodes.Add Text:=i, Image:=i
Next
End Sub


В результате маленькие иконки отображаются правильно, а большие сжимаются до 16х16
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

Odvin
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 10.05.2004 (Пн) 22:20
Откуда: Москва, Россия

Сообщение Odvin » 16.09.2004 (Чт) 18:14

Все, проблема решена. Нужно было просто поставить правильный размер для значков в ImageList (можно на этапе дизайна, а не динамически, как показал SHURUP).


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

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

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

    TopList