Как запихнуть иконку файла в ListView?

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

Как запихнуть иконку файла в ListView?

Сообщение ...PaWeL... » 10.02.2004 (Вт) 0:06

Как запихнуть ассоциируемую иконку файла в ListView?

т.е. например, есть файл text.doc и к нему в список вставляется иконка документа ворда

Как вытащить иконку есть много примеров а как запихнуть ее в listview я не нашел ни одного.

Vi
Постоялец
Постоялец
 
Сообщения: 739
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Сообщение Vi » 10.02.2004 (Вт) 9:36

Поищи как зпихнуть ее(иконку) в ImageList.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 10.02.2004 (Вт) 10:33

Как вытащить иконку есть много примеров а как запихнуть ее в listview я не нашел ни одного.


Кинь сюда пару ссылок, плз 8)

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 10.02.2004 (Вт) 12:41

Народ, вы чего??? А документацию-то кто читать будет?
У ListView есть 2 свойства - Icons и SmallIcons. Туда надо положить ImageList. В методе Add у ListItems последние параметры - это как раз индексы иконок в ImageList'ах, назначенных в Icons и SmallIcons соответсвенно.

Код: Выделить всё
ListView1.Icons = ImageList1
ListView1.SmallIcons = Imagelist2
ListView1.ListItems.Add , "Key", "Text", 2, 2


Подробнее можно посмотреть здесь: http://msdn.microsoft.com/library/defau ... ontrol.asp
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

Sergey-13
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 119
Зарегистрирован: 23.01.2004 (Пт) 16:02
Откуда: Саранск

Сообщение Sergey-13 » 10.02.2004 (Вт) 14:35

все точно!
А есть еще
ListView1.ColumnHeaderIcons=ImageList3
Книги созданы для чтения!!!!!!!!!!!

...PaWeL...
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 10.02.2004 (Вт) 0:00

Сообщение ...PaWeL... » 10.02.2004 (Вт) 20:29

А всетаки как зaпихнуть иконку в ImageList.?

Sergey-13
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 119
Зарегистрирован: 23.01.2004 (Пт) 16:02
Откуда: Саранск

Сообщение Sergey-13 » 11.02.2004 (Ср) 11:15

Ну да ладно. С кажу как это сделать более подробнее.
Берешь книгу или выше описанный код, который тебе написал Rainbow, анализируешь все это. И пишаешь свою иконку теда - где ей место! Вот и все. Другого варианта я не вижу.

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

Сообщение GSerg » 11.02.2004 (Ср) 11:21

Написала.
А вообще, иконка извлекается из конкретного файла при помощи ExtractIconEx, из ассоциированного - ExtractAssociatedIcon.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 11.02.2004 (Ср) 13:35

GSerg писал(а):Написала.

Спасибо :lol: Но на это можно особо внимания не обращать...

...PaWeL... писал(а):А все-таки как зaпихнуть иконку в ImageList?

Код: Выделить всё
Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long

Private Sub Form_Load()
Dim mIcon As Long

    mIcon = ExtractIcon(Me.hWnd, "C:\WINNT\Notepad.exe", 0)
    DrawIcon Picture1.hdc, 0, 0, mIcon
    Picture1.Picture = Picture1.Image
    ImageList1.ListImages.Add , , Picture1.Picture
    ListView1.Icons = ImageList1
    ListView1.ListItems.Add , "Key", "Text", 1
End Sub


В Picturebox'е стоит autoredraw и autosize = true
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

...PaWeL...
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 10.02.2004 (Вт) 0:00

Сообщение ...PaWeL... » 15.02.2004 (Вс) 1:20

А что делать есль файла нет на диске, а например надо получить иконку для файлов типа HTML ?

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 16.02.2004 (Пн) 11:28

Создай временный файл с нужным тебе расширением и
GSerg писал(а):из ассоциированного - ExtractAssociatedIcon
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

...PaWeL...
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 10.02.2004 (Вт) 0:00

Сообщение ...PaWeL... » 16.02.2004 (Пн) 20:56

я так и думал, но помойму это изврат :(
но всеравно спасибо

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 17.02.2004 (Вт) 16:28

Ну не грусти так :wink:
Не такой уж это и изврат. И просто очень.

А так - конечно, есть эта инфа в реестре - для зарегистрированных расширений. Можно оттуда достать...
HKCR/.txt - (default) - там название, допустим, txtfile
HKCR/txtfile/defultIcon - там путь и номер иконки

Но только по мне это еще больший изврат :)
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)


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

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

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

    TopList  
cron