ListView
-
nabend,
ich habe in einer LiestView mehrer Spalten.
bei der ersten Spalte, kann man die Zeilen Bearbeiten, bei der Zweiten jedoch nicht.
wie kann ich das Ändern?
Ich will, dass die erste Spalte man nicht bearbeiten kann und die zweite Spalte schon.
http://www.imagespell.com/show.php?id=42fd3e5824840147d2094e1124584fe5.jpgdie Grafik verdeutlich mein Problem
hListe = CreateWindowEx(WS_EX_CLIENTEDGE, WC_LISTVIEW, "Tree", WS_CHILD|WS_VISIBLE|LVS_REPORT|LVS_EDITLABELS, 10, 10, 300, 300, hWnd, (HMENU)102, GetModuleHandle(NULL), NULL);
-
Kann das das Standard-ListView-Teil überhaupt ? Ich dachte bisher die Subitems könnten da nicht bearbeitet werden und man müsste sich das ListView umbauen bzw. nen anderes nehmen ?
-
Also ich hab es mit WinApi auch noch nicht geschafft das zu machen. Hab aber schon MFC projekte gesehen die das konnten. Konnte damit allerdings nichts anfangen

Viel glück und würde mich auch über ne Lösung freuen
MfG schirrmie
-
Also glaube -wie geeky-, dass das nicht unterstützt wird, von den Standard-ListView's.
-
INT n[] = { 1, 0 }; ListView_SetColumnOrderArray(hListe, (sizeof(n) / sizeof(n[0])), &n);Damit werden die beiden Spalten vertauscht dargestellt. Wenn man die Liste dann auch vertauscht befüllt, sieht es so aus, als könne man die zweite Spalte editieren.
-
Wenn Du jede Zelle editierbar machen willst musst Du zu eigenem Inplace Edit greifen. D.h. Du kannst die LVN_BEGINLABELEDIT abfangen musst dann aber Dein eingenes Edit Control genau über dieser Zelle erzeugen.
Für MFC könnte ich Dir dazu genug Stoff liefern in purem Win32 habe ich das noch nicht gemacht, obwohl es sicherlich nicht weit auseinander liegt.
Das Grundproblem ist schon dass die Win32 API keine Standardtechnik für PreTranslateMessage anbietet. Du musst also einen Keyboard und einen Mousehook installieren, wenn Du es wirklich richtig machen willst.
-
ach schade, hmm, nja ich teste mal rum, vieleicht kriege ich es mit edit-boxen hin
thx schonmal