Что нового

[Элементы GUI] Как задать значок для элемента _GUICtrlListView_AddItem?

sforce5

Олл фо ЛулзЪ
Сообщения
160
Репутация
41
К примеру есть код:

Код:
_GUICtrlListView_AddItem($pepyaka, "Мега техст")
_GUICtrlListView_AddSubItem($pepyaka, 1, "Есьчо адын мега техст", 1)


У меня не получается задать значок на элемент через:

Код:
_GUIImageList_Create()
...
_GUICtrlListView_SetImageList($pepyaka, $hImage, 1)


Обьясните, пожалуйста, как задать иконку для элемента LV
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Код:
#Include <GUIImageList.au3>
#Include <GUIListView.au3>

GUICreate('MyGUI', 400, 400)
$hListView = GUICtrlCreateListView('', 10, 10, 380, 380)
_GUICtrlListView_InsertColumn($hListView, 0, 'Row1', 150)
$hImageList = _GUIImageList_Create(16, 16, 5, 1)
_GUIImageList_AddIcon($hImageList, @Systemdir & '\shell32.dll', 130)
_GUICtrlListView_SetImageList($hListView, $hImageList, 1)
_GUICtrlListView_AddItem($hListView, 'Item1', 0)
GUISetState()

Do
Until GUIGetMsg() = -3
 
Автор
sforce5

sforce5

Олл фо ЛулзЪ
Сообщения
160
Репутация
41
А если LV Item не один, и для каждого нужна своя иконка, тогда как?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Код:
#Include <GUIImageList.au3>
#Include <GUIListView.au3>

GUICreate('MyGUI', 400, 400)
$hListView = GUICtrlCreateListView('', 10, 10, 380, 380)
_GUICtrlListView_InsertColumn($hListView, 0, 'Row1', 150)
$hImageList = _GUIImageList_Create(16, 16, 5, 1)
_GUICtrlListView_SetImageList($hListView, $hImageList, 1)

For $i = 0 To 150
	_GUIImageList_AddIcon($hImageList, @Systemdir & '\shell32.dll', $i)
	_GUICtrlListView_AddItem($hListView, 'Item' & $i, $i)
Next

GUISetState()

Do
Until GUIGetMsg() = -3



Добавлено:
Сообщение автоматически объединено:

Здесь еще важно помнить, что когда ты удаляешь (добавляешь) элемент из списка аналогичные манипуляции нужно производить и с $hImageList. Если иконка больше не нужна, то ее следует удалить из $hImageList посредством _GUIImageList_Remove().
 
Верх