#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>

Global $iMemo

_Main()

Func _Main()
	Local $hImage, $hGUI, $aSize, $listview

	$hGUI = GUICreate("Получает размеры иконки списка изображений", 400, 300)
	$listview = GUICtrlCreateListView("", 2, 2, 394, 199, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT))
	$iMemo = GUICtrlCreateEdit("", 2, 200, 396, 266, 0)
	GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
	GUISetState()

	$hImage = _GUIImageList_Create(32, 32, 5, 3)
	_GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 110)
	_GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 131)
	_GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 165)
	_GUICtrlListView_SetImageList($listview, $hImage, 1)

	; Добавляет колонки
	_GUICtrlListView_AddColumn($listview, "Колонка 1", 120)
	_GUICtrlListView_AddColumn($listview, "Колонка 2", 100)
	_GUICtrlListView_AddColumn($listview, "Колонка 3", 100)

	; Добавляет пункты
	_GUICtrlListView_AddItem($listview, "Стр 1: Кол 1", 0)
	_GUICtrlListView_AddSubItem($listview, 0, "Стр 1: Кол 2", 1, 1)
	_GUICtrlListView_AddSubItem($listview, 0, "Стр 1: Кол 3", 2, 2)
	_GUICtrlListView_AddItem($listview, "Стр 2: Кол 1", 1)
	_GUICtrlListView_AddSubItem($listview, 1, "Стр 2: Кол 2", 1, 2)

	; Показывает размер иконок списка изображений
	$aSize = _GUIImageList_GetIconSize($hImage)
	MemoWrite("Ширина изображения: " & $aSize[0])
	MemoWrite("Высота изображения: " & $aSize[1])

	MsgBox(4096, "Информация", "Изменение размера изображения")

	_GUIImageList_SetIconSize($hImage, 16, 16)
	_GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 110)
	_GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 131)
	_GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 165)
	_GUICtrlListView_SetImageList($listview, $hImage, 1)

	$aSize = _GUIImageList_GetIconSize($hImage)
	MemoWrite("Ширина изображения: " & $aSize[0])
	MemoWrite("Высота изображения: " & $aSize[1])

	; Цикл выполняется, пока окно не будет закрыто
	Do
	Until GUIGetMsg() = $GUI_EVENT_CLOSE
	GUIDelete()
EndFunc   ;==>_Main

; Записывает строку в элемент для заметок
Func MemoWrite($sMessage)
	GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite