
Sieht einfach aus, aber bevor man es aus der MSDN quälen muß, denke ich,
ist es für den einen oder anderen nützlich.
(ich habs dringend benötigt)
Code: Alles auswählen
; Procedure um ein bestimmtes Icon eines ListIcongadgets zu ermitteln
; nützlich um zum Beispiel diese umzusortieren
; ermitteltes Icon ist am Ende oder nach Zuweisung zu einem ListIconGadget zu destroyen, siehe Beispiel
; PB 4.xx
; Beispielcode benötigt 4.30
; Windows Only
; Autor: Thomas <ts-soft> Schulz
; 21.04.2009
EnableExplicit
; ID ist die Gadgetnummer/konstante, item ist der eintrag, beginnend mit 0
Procedure GetListIconIcon(ID, item)
Protected LVITEM.LV_ITEM
Protected index, hIML, hIcon
LVITEM\Mask = #LVIF_IMAGE
LVITEM\iItem = item
SendMessage_(GadgetID(ID), #LVM_GETITEM, 0, @LVITEM)
index = LVITEM\iImage
hIML = SendMessage_(GadgetID(ID), #LVM_GETIMAGELIST, #LVSIL_SMALL, 0)
hIcon = ImageList_GetIcon_(hIML, index, #ILD_TRANSPARENT)
ProcedureReturn hIcon
EndProcedure
; Beispiel
Define hIcon
OpenWindow(0, #PB_Ignore, #PB_Ignore, 200, 190, "bla", #PB_Window_SystemMenu)
ListIconGadget(0, 0, 0, 200, 150, "test", 190)
AddGadgetItem(0, -1, "CDIcon", LoadImage(0, #PB_Compiler_Home + "Examples\Sources\Data\CdPlayer.ico"))
ImageGadget(1, 92, 160, 16, 16, 0)
hIcon = GetListIconIcon(0, 0)
SetGadgetState(1, hIcon)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
DestroyIcon_(hIcon)