ExtractIcon неправильно грузит иконку размером 100x100

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

ExtractIcon неправильно грузит иконку размером 100x100

Сообщение ANDLL » 18.08.2005 (Чт) 19:50

Создаю в AWicons иконку размером 100x100. Потом загружаю ее из файла с помощью ExtractIcon. В итоге GeIconInfo сообщает, что размер иконки 16x16. И рисуется она(с помощью DrawIcon) то же только такого размера. DrawIconEx может нарисовать иконку размером 100x100, но при этом она выглядит мягко говоря помятой. Ну Вы себе представляете, как выглядит иконка, вдруг сжатая в пять раз, а потом снова "разжатая" до исходных размеров...
А как тогда загружать иконку?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

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

Сообщение GSerg » 19.08.2005 (Пт) 2:40

Ни фига себе иконка...

Поюзай-таки findresource, loadresource, lockresource, freeresource...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 19.08.2005 (Пт) 3:46

Использовать LoadImage вера не позволяет?

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 19.08.2005 (Пт) 10:58

Юстас, приступы остроумия на этом форуме позволены далеко не всем. Функция LoadImage это своего рода "распределительная" функция. Она использует тот же алгоритм, что и LoadIcon для загрузки иконок.

Кстати, угадайте, как я решил эту проблему! Просто вспомнил, про то, что в VB есть функция LoadPicture... Вот как оказывается просто решаются некоторые проблемы.
Юстас, GSerg: спасибо!
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 19.08.2005 (Пт) 14:18

ANDLL

Мне не нужно чьё-то разрешение :)

Кстати, если говорить о "распределительных" функциях, то LoadPicture это и есть vb-обёртка для LoadImage.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 19.08.2005 (Пт) 15:13

Неужто? А мои фибры подсказывают мне, что OleLoadPictureEx.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 19.08.2005 (Пт) 16:19

Возможно.
А как быть с тем, что LoadPicture не позволяет загрузить иконки с глубиной цвета более 8 бит? 24-битные и 32-битные иконки за пределами возможностей LoadPicture... (ошибка invalid picture)
Даже константы нет более 256 цветов. Максимум vbLPColor=256 colors

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 19.08.2005 (Пт) 17:52

:?: Юстас, ты проверял? Моя иконка как раз 24-битная... И грузится...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 19.08.2005 (Пт) 18:32

Проверял, 24 и 32 бита LoadPicture идёт в отказ.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 19.08.2005 (Пт) 18:46

32-битные действительно не грузит. А вот с 24 бита проблем нету. Проверь. Как ты определеяшь, сколько бит у иконки? И какой Windows?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 19.08.2005 (Пт) 19:37

Как определяю? :) я не определяю, я иконку изначально делаю 24 битную в том же AWicons.

Это не в Windows дело, т.к. LoadImage в отличие от LoadPicture, грузит все форматы без проблем. (а винда - XP)

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 19.08.2005 (Пт) 20:24

Во вложении иконка. 16x16@24.
Такой код быдет вызывать у тебя ошибку:
Код: Выделить всё
Private sub Form_Load()
   LoadPicture "путь_к_файлу"
End Sub

:?:
Вложения
1.zip
1.zip
(152 байт) Скачиваний: 21
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 19.08.2005 (Пт) 20:59

Именно так. Ошибка 481.
Я давно уже на это нарвался и отказался от LoadPicture. Разбираться в чем дело - то ли сервиспак какой для vb нужен, то ли ещё что - неохота. Есть нормальный путь - LoadImage, вот и использую его.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 20.08.2005 (Сб) 7:52

Воистину, чудеса. У меня она как раз грузится. Видимо, дело действительно в каком-то ServicePack'е.
А LoadImage имеет тот минус, что не грузит нестандартные иконки, вроде моей.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 61

    TopList