LVM_FINDITEM geht nicht, aber selberngebastelt funktioniert, warum?
-
ok was ich möchte -> item in listview finden und löschen.
hier der Code der nicht geht:
static LVFINDINFO lv_item; int index; memset (&lv_item, 0, sizeof(lv_item)); //weglassen bringt auch nichts lv_item.flags = LVIF_PARAM; lv_item.lParam = check; //check ist bekannt index = SendMessage(Fenster_1, LVM_FINDITEM, (WPARAM)(int)-1, (LPARAM)&lv_item); // index = ListView_FindItem(Fenster_1, -1, &fitem); //geht auch net, liefert nur -1, genau wie obere Zeile if(index != -1){ SendMessage(Fenster_1, LVM_DELETEITEM, (WPARAM)(int)index, 0); }so hier meine selberngebastelte Suchfunktion und die funktioniert:
LVITEM lv_item; int i; for(i = 0; i < item_anzahl; i++){ //item_anzahl ist bekannt memset (&lv_item, 0, sizeof(lv_item)); lv_item.iItem = i; lv_item.iSubItem = 0; lv_item.mask = LVIF_PARAM; SendMessage(Fenster_1, LVM_GETITEM, 0, (LPARAM)(LPLVITEM)&lv_item); if(lv_item.lParam == check){ //check ist bekannt SendMessage(Fenster_1, LVM_DELETEITEM, (WPARAM)(int)i, 0); break; } }eigentlich sollten beide Proceduren das Gleiche machen aber die erste gibt mir immer nur -1 als gefundenen Item zurück, was mach ich falsch, ich sehs leider nicht. Ich dachte ich nehm die von Winapi weil die warscheinlich schneller ist als meine selbern geschriebene
-
push
-
Jo danke es geht jetzt
-
Bitte.
~_________________
#%&$§§!!! Lern C++!~