Editieren in einer mehrspaltigen Listbox
-
Wie kann man in einem mehrspaltigen Listview durch klicken einer beliebigen Spalte diese editieren. Diese listbox wird wie folgt erzeugt
hLstBox_01 = CreateWindowEx(WS_EX_CLIENTEDGE, WC_LISTVIEW, "",WS_CHILD | WS_BORDER | WS_VISIBLE |WS_VSCROLL | LVS_REPORT | LVS_NOLABELWRAP | LVS_SINGLESEL | LVS_ICON | LVS_EDITLABELS, 1,1,(MainXsize-10),(MainYsize-50)/*400*/, hWnd,NULL,hInst,0); //Spalte 1 col.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM | LVCF_IMAGE;//LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; col.fmt=LVCFMT_LEFT | LVCFMT_COL_HAS_IMAGES ;//LVCFMT_LEFT; col.pszText = (char*)"logging"; col.cx =(int)(MainXsize-10); col.iSubItem = 1; col.cchTextMax = NORMSTRINGLEN; col.iImage = -1; ListView_InsertColumn (hLstBox_01,1,&col);Oder falls es hiermit nicht sinnvoll geht, gibt es ähnliches Konstrukt mit dem das geht.
Danke
-
Mit Bordmitteln ( sprich Standard-Listview Ctrl ) wird das nichts werden. Hier kannst Du nur die erste Spalte editierbar machen ( im Reportview ).
Normalerweise würdest du den Click auf ein Datum in einer anderen Spalte abfangen, ein Editcontrol an der entsprechenden Stelle erstellen und hiermit editieren.
Ich glaube ich habe bei Codeguru mal ein paar solcher Controls gesehen, die das können. AFAIK heisst es Supergrid. Allerdings mit MFC, sollte sich aber auch ohne Klassen umschreiben lassen ( wenns der Autor gestattet ).
-
Hallo,
bei codeProject gibt es auch pure winApi Grid Controls, wie z. B. das DataGrid. das sollte auch editieren können ....
MfG
Anakin