ХР'ишные иконки в .res файл

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
anian
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 116
Зарегистрирован: 02.10.2002 (Ср) 12:05
Откуда: /dev/null

ХР'ишные иконки в .res файл

Сообщение anian » 16.01.2007 (Вт) 8:18

Собстно, сабж...но: родным ResEdit'ом они не впихиваются.
Написал .rc'шник:
Код: Выделить всё
101 ICON DISCARDABLE   "date.ico"
102 ICON DISCARDABLE   "hware.ico"

Компильнул rc.exe, поключаю к проекту, смотрю - никаких элементов VB в нем не видит, и соответственно LoadImage() из этого файла ресурсов ничего загрузить не может.

Уважаемый непомнюкто писал, что из ресурсов LoadImage() может грузить иконки максимум 32х32, а иконки у меня 48х48...но почему VB ничего не видит?

С диска LoadImage() закружает эти иконки нормально.
Трез-вы-ми мы не сда-дим-сииии!!! Ураааааа!!!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 16.01.2007 (Вт) 8:57

как юзаешь то хоть?
Весь мир матрица, а мы в нем потоки байтов!

schalexey
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 18.02.2005 (Пт) 17:41
Откуда: Сургут

Сообщение schalexey » 16.01.2007 (Вт) 9:25

anian что сделать то хочешь? прилипить к форме как иконку? или что?
ЗЫ VB6 не поддерживает большие иконки, только через API.

anian
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 116
Зарегистрирован: 02.10.2002 (Ср) 12:05
Откуда: /dev/null

Сообщение anian » 16.01.2007 (Вт) 10:18

Юзаю путем создания ImageList через API
Фиг с ней, с LoadImage...что с файлом ресурсов делать-то? Шоб VB его понимал?
Трез-вы-ми мы не сда-дим-сииии!!! Ураааааа!!!

AntonGV
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 24.05.2006 (Ср) 12:10
Откуда: г. Пермь

Сообщение AntonGV » 16.01.2007 (Вт) 12:45

Вот пример. Странно в RES файл иконки загрузились 48х48, а LoadResPicture достает 32х32.
Вложения
test.rar
(14.81 Кб) Скачиваний: 60
Если долго мучиться, что-нибудь получится

anian
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 116
Зарегистрирован: 02.10.2002 (Ср) 12:05
Откуда: /dev/null

Сообщение anian » 16.01.2007 (Вт) 13:36

to AntonGV:
Да, в ресурсы вообще можно запихать что угодно,а LoadResPicture больше 32х32 не понимает.

Решил пойти по немного некошерному, но простому пути:
Код: Выделить всё

'Идея Steve McMahon
Dim iAr() As Byte, sFile As String, iFile As Long
    Set cIL = New cVBALImageList
   
    cIL.IconSizeX = 48
    cIL.IconSizeY = 48
    cIL.ColourDepth = ILC_COLOR32
    cIL.Create
   
    iAr = LoadResData(2002, "ICO")
    sFile = App.Path + "\" + "m.tmp"
    iFile = FreeFile
        Open sFile For Binary Access Write Lock Read As #iFile
            Put #iFile, , iAr
        Close #iFile
            iFile = 0
    cIL.AddFromFile App.Path + "\" + "m.tmp", IMAGE_ICON
    Kill sFile

    cIL.DrawImage 1, pHware.hdc, 0, 0

В аттаче исходник класса cVBALImageList
Вложения
cVBALImageList.zip
(9.13 Кб) Скачиваний: 58
Трез-вы-ми мы не сда-дим-сииии!!! Ураааааа!!!

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 16.01.2007 (Вт) 14:56

А какой- нибудь ExeScope или иной просмотрщик ресурсов видит в откомпилированном файле этот ресурс?

Нужно пробовать грузить иконки из ресурсов не через Vb6 -функции типа LoadResData, а той же LoadImage.

schalexey
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 18.02.2005 (Пт) 17:41
Откуда: Сургут

Сообщение schalexey » 16.01.2007 (Вт) 15:01

anian
http://vbstreets.ru/VB/Articles/66446.aspx

посмотри тут... как раз показано как вытянуть такую иконку... В принципе можно переделать и под свои нужды

anian
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 116
Зарегистрирован: 02.10.2002 (Ср) 12:05
Откуда: /dev/null

Сообщение anian » 17.01.2007 (Ср) 6:12

to schalexey & Alexanbar:
Спасибо за наводки на мысль :) , все уложилось в одну строку:
Код: Выделить всё

hIcon = LoadImage(App.hInstance, "2001", IMAGE_ICON, 48, 48, LR_SHARED)
Трез-вы-ми мы не сда-дим-сииии!!! Ураааааа!!!


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

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

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

    TopList