GetListIconIcon
Verfasst: 21.04.2009 08:34
Nachdem ich nirgends fündig wurde, hab ichs mir selbst gemacht
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)

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)