Ich hab ein SysListview32 und will dort in eine bestimmte Spalte ein Image einfügen. Das klappt auch, allerdings ist in der ersten Spalte auch immer das erste Image der Imagelist. Wie krieg ich das Image weg?
Hier der Code für die Imagelist:
Delphi-Quellcode:
hLVImg := ImageList_Create(32, 16, ILC_COLOR, 0, 3);
ImageList_AddIcon(hLVImg, LoadIcon(hInstance, MAKEINTRESOURCE(102)));
ImageList_AddIcon(hLVImg, LoadIcon(hInstance, MAKEINTRESOURCE(103)));
ImageList_AddIcon(hLVImg, LoadIcon(hInstance, MAKEINTRESOURCE(104)));
SendMessage(hIncIPView, LVM_SETIMAGELIST, LVSIL_SMALL, hLVImg);
Und hier für das Setzen des Icons:
Delphi-Quellcode:
LVItem.mask := LVIF_IMAGE;
LVItem.iItem := rowIndex;
LVItem.iSubItem := 6;
//Protokoll ermitteln
case PacketRec.protoType of
IPPROTO_UDP: LVItem.iImage := 0;
IPPROTO_TCP: LVItem.iImage := 1;
IPPROTO_ICMP: LVItem.iImage := 2;
end;
SendMessage(hIncIPView, LVM_SETITEM, 0, Integer(@LVItem));
Das ListView wurde mit LVS_EX_SUBITEMIMAGE erweitert.