Hey,
folgendes Problem:
In einer .dll sind verschiedene Icons gespeichert, einige davon sollen in einem Listview angezeigt werden.
Derzeit mache ich das so:
Spoiler anzeigen
#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <Constants.au3>
#include <ScreenCapture.au3>
Opt('MustDeclareVars', 1)
Opt('CaretCoordMode', 0)
$Debug_LV = False ; Check ClassName being passed to ListView functions, set to True and use a handle to another control to see it work
Global $GUI, $hListView, $msg, $hImage, $aImage, $test2, $load, $ilist, $try
Global $exStyles = BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER)
$GUI = GUICreate("Gui", 800, 650, -1, -1)
[/autoit] [autoit][/autoit] [autoit];=========================================================================================================
$hListView = GUICtrlCreateListView("", 2, 2, 394, 268); _GUICtrlListView_Create($GUI, "", 50, 50, 550, 500, $LVS_NOCOLUMNHEADER, -1, True) ; Last option Calls CoInitializeEx
;=========================================================================================================
Global $HLV = GUICtrlGetHandle($hListView)
_GUICtrlListView_SetExtendedListViewStyle($hListView, $exStyles)
$hImage = _GUIImageList_Create()
$test2 = _GUIImageList_AddIcon($hImage, "Pfad zur .dll", 0)
$ilist = _GUICtrlListView_SetImageList($hListView, $hImage, 1)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]; Add columns
_GUICtrlListView_InsertColumn($hListView, 0, "Column 1", 100)
_GUICtrlListView_InsertColumn($hListView, 1, "Column 2", 100)
_GUICtrlListView_InsertColumn($hListView, 2, "Column 3", 100)
; Add items
_GUICtrlListView_AddItem($hListView, "Row 1: Col 1", 0)
_GUICtrlListView_AddSubItem($hListView, 0, "Row 1: Col 2", 1)
_GUICtrlListView_AddSubItem($hListView, 0, "Row 1: Col 3", 2)
_GUICtrlListView_AddItem($hListView, "Row 2: Col 1", 1)
_GUICtrlListView_AddSubItem($hListView, 1, "Row 2: Col 2", 1)
_GUICtrlListView_AddItem($hListView, "Row 3: Col 1", 2)
GUISetState()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
[/autoit] [autoit][/autoit] [autoit]WEnd
[/autoit]
D.h. jedes Icon wird einzeln zur Imagelist hinzugefügt.
Kann man auch einfach alle Icons automatisch aus der .dll in die Liste laden?
Gruß nuts
edit \
Idee
$hImage = _GUIImageList_Create()
$count = _WinAPI_ExtractIconEx("Pfad zur .dll", -1, 0, 0, 0)
for $i = 0 to $count -1
_GUIImageList_AddIcon($hImage, "Pfad zur .dll", $i)
next