Column-Überschrift Abfragen (CListCtrl)
-
Also erstens, die Struktur heisst LVCOLUMN.
Zweitens sollte man vielleicht eine Überprüfung reinsetzen:if(lvc.mask & LVCF_TEXT) { // ... }Und drittens, versuch mal dies hier:
v_sColumnHeader.Format(_T("%s"), lvc.pszText);Grüssli
-
danke. hab ich gemacht, die fehlermeldung sieht zwar jetzt anders aus, aber der fehler ist immer noch der selbe.
im debug hab ich folgende werte:
lvc = {...} was mich etwas irritiertlvc.mask = 4
lvc.pszText = 0xcccccccc "" bzw. CXX0030: Fehler: "Ausdruck kann nicht ausgewertet werden"aber diese zeile ist doch richtig? oder?
c_lstList.GetColumn(3, &lvc);ps. LVCOLUMN ersetzt die alte LV_COLUMN unter vc6 geht beides.
-
Ach ich hab grad in der MSDN nachgeschaut. Sorry ... Fehler ...
Die mask wird anderst verwendet, als ich dachte. Sie definiert, was du holen willst, bzw. bei SetColumn setzen willst.
Also korrekt wäre es:
LVCOLUMN lvc; lvc.mask = LVCF_TEXT; c_ListCtrl.GetColumn(3, &lvc);Die Überprüfung kannst dann weglassen. Sorry, mein Fehler. Ist etwas her, dass ich das letzte mal LVCOLUMN verwendet habe ^^
Grüssli
-
ja, so hab ich mir das auch gedacht, aber es funzt nich.
das das setzen der überschriften klappt, hab ich mal versucht sie direkt danach wieder abzufragen:
LVCOLUMN lvc; lvc.mask = LVCF_TEXT | LVCF_WIDTH; lvc.cx = 80; lvc.pszText = "Wert"; c_ListCtrl.InsertColumn(3, &lvc); lvc.pszText = "Parmeter"; c_ListCtrl.InsertColumn(7, &lvc); //soweit gehts lvc.mask = LVCF_TEXT; c_ListCtrl.GetColumn(3, &lvc); //lvc.pszText wird nicht aktualisiert
-
hast du jetzt das 3 und das 7 nur als Beispiel gemacht, oder ist das wirklich so? Also hast du keine Kolonne von 0 bis 2 und von 4 bis 6? Dann wäre nämlich dein GetColumn aufruf falsch. Die Kolonne 3 wird nämlich in deinem Beispiel an die Position 0 gestetzt und die Kolonne 7 an die Position 1. Kannst du auch erkennen über den Rückgabewert von InsertColumn. Somit kann GetColumn(3, ...) gar nicht funktionieren, da an der Stelle 3 gar keine Kolonne ist.
Grüssli
-
Bei mir gehts.
-
klar hat jede column eine überschrift (hab nur die als bsp herausgezogen)
-
jemand noch ne idee, was ich noch falsch machen könnte?
-
Versuch das mal:
LVCOLUMN lc; lc.mask = LVCF_TEXT; char szBuffer[100]; lc.cchTextMax = 100; lc.pszText = szBuffer; c_ListCtrl.GetColumn( 0, &lc );
-
Hallo,
@Airdamn, dein Vorschlag funktioniert, der hier auch:TCHAR lpBuffer[256]; HDITEM hdItem; hdItem.mask = HDI_TEXT; hdItem.pszText = lpBuffer; hdItem.cchTextMax = 256; CString csstr; pListCtrl->GetHeaderCtrl()->GetItem(1,&hdItem); csstr = hdItem.pszText;was einem lieber ist

lg
pixel