Добавить иконку в ImageList

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

Добавить иконку в ImageList

Сообщение Emzari » 22.11.2003 (Сб) 21:57

Суть вопроса таков. На форме имеется два контролла ImageList (imListBig и imListSmall) и один PictureBox (Name = picIcon, Visible = False). Ети две ImageList заполняются иконками фаилов. Сами иконки из фаилов извлекаются с помощю функции ExtractAssociatedIcon но приходится сначала иконку ставить в PictureBox а потом из него немнжка преобразовав в ImageList.

Ктонибудь знает как обоитис без PictureBox-а.

сам код примерно так виглидит:

Код: Выделить всё
'деклараций
Const DI_MASK = &H1
Const DI_IMAGE = &H2
Const DI_NORMAL = DI_MASK Or DI_IMAGE

Private Declare Function ExtractAssociatedIcon Lib "shell32.dll" Alias "ExtractAssociatedIconA" (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Long) As Long

Private Declare Function DrawIconEx Lib "user32" (ByVal hdc As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long

Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long

Dim lngIcon As Long
Dim fName As String

'.............

'основная часть кода
picIcon.Picture = Nothing
lngIcon = ExtractAssociatedIcon(App.hInstance, FolderPath & fName, 2)
DrawIconEx picIcon.hdc, 0, 0, lngIcon, 0, 0, 0, 0, DI_NORMAL
DestroyIcon lngIcon
picIcon.Picture = picIcon.Image
imListBig.ListImages.Add , "Folder", picIcon.Picture
imListSmall.ListImages.Add , "Folder", picIcon.Picture

:D :D :D

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 22.11.2003 (Сб) 22:07

Внутренний голос подсказывает мне: "Никак!" :D

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

Сообщение GSerg » 23.11.2003 (Вс) 7:16

Попробуй посмотреть в апи-гайде функцию OleCreatePictureIndirect :roll:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


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

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

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

    TopList