Как загрузить иконку из ресурсов в CAPTION диалога?

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

Как загрузить иконку из ресурсов в CAPTION диалога?

Сообщение jangle » 29.08.2007 (Ср) 13:22

Допустим у меня в ресурсах хранится иконка, ResHacker выводит ресурс Icon в таком виде:

Код: Выделить всё
Icon
|_________1
|         |____1033
|
|_________2
          |____1033


Я пытаюсь загрузить иконку 2, в капшон, но она не отображается, почему?

Код: Выделить всё
SetClassLong hDlg, GCL_HICON, LoadIcon(ByVal 0, ByVal 2)


и так не получается:

Код: Выделить всё
SetClassLong hDlg, GCL_HICON, LoadIcon(ByVal hInstance, ByVal 2)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 29.08.2007 (Ср) 13:33

а LoadIcon(ByVal hInstance, ByVal 2) что возвращает? не нуль?
Изображение

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 29.08.2007 (Ср) 13:38

tyomitch писал(а):а LoadIcon(ByVal hInstance, ByVal 2) что возвращает? не нуль?


Да оказывается возвращает 0. Но почему? Ресурс же есть, ResHacker показывает его

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Как загрузить иконку из ресурсов в CAPTION диалога?

Сообщение Andrey Fedorov » 29.08.2007 (Ср) 13:57

jangle писал(а):Допустим у меня в ресурсах хранится иконка, ResHacker выводит ресурс Icon в таком виде:


Ресурсы твоей программы? Если да, то:

Код: Выделить всё
Private Sub Form_Load()
    Icon = LoadResPicture(1033, vbResIcon)
End Sub


Или я не понял?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Как загрузить иконку из ресурсов в CAPTION диалога?

Сообщение jangle » 29.08.2007 (Ср) 14:05

Andrey Fedorov - какая иконка при этом загрузится? 1 или 2?

Me!
Новичок
Новичок
 
Сообщения: 35
Зарегистрирован: 05.08.2007 (Вс) 21:35

Сообщение Me! » 29.08.2007 (Ср) 14:41

Andrey Fedorov
немного неверно: 1033 - это код языка ресурса,
грузить нужно так:

Icon = LoadResPicture(X, vbResIcon)
X - номер ресурса

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Как загрузить иконку из ресурсов в CAPTION диалога?

Сообщение Andrey Fedorov » 29.08.2007 (Ср) 14:58

jangle писал(а): Andrey Fedorov - какая иконка при этом загрузится? 1 или 2?


Ты про иконку содержащую несколько размеров?

Я не заморачивая засовываю иконки редактором ресурсов от VB. Вроде проблем не было...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.08.2007 (Ср) 15:00

Me! писал(а):Andrey Fedorov
немного неверно: 1033 - это код языка ресурса,
грузить нужно так:


Ну, ты сам понял... :lol:
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Александр Дмитриев
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 296
Зарегистрирован: 05.01.2005 (Ср) 3:39
Откуда: Санкт-Петербург    Куда: /dev/null

Сообщение Александр Дмитриев » 30.08.2007 (Чт) 18:31

Тот идентификатор иконки, который просит LoadIcon во втором параметре ResHacker отображает в группе Icon Group, а не Icon; в средней части пути к иконке. Т.е., например, если ResHacker у тебя отображает такое:
Код: Выделить всё
Icon Group
|_________1
|         |____1033
|
|_________2
          |____1033
то с помощью LoadIcon ты сможешь достать оттуда две иконки; для доставания первой нужно указать идентификатор 1, а для второй - 2. Если нужна иконка определенного размера, то лучше использовать LoadImage, а не LoadIcon. Кстати, а LoadResPicture возвращает случайно не то же самое, что LoadIcon?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 30.08.2007 (Чт) 19:29

LoadResPicture возвращает объект.
Изображение


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

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

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 53

    TopList