ListBox im Dialog
-
Hallo!
Kann mir jemand sagen, wie ich ein CListCtrl in meinen Dialog einhaengen kann???
CListCtrl listBox;
listBox.Create(WS_VISIBLE|WS_BORDER|LVS_REPORT, CRect(20,20,120,150),this,IDC_LIST1);Dialogname: CSafetyGuideDlg_Doc
Danke
Matthias
-
Hallo, na das sieht doch schon ganz gut aus.
Die Variable 'listBox' mußt du aber zu mindest als Member deiner Dialog-Klasse declarieren, weil die sonst nur lokal in der aufrufenden Funktion gültig ist und nach dem Verlassen nicht mehr zur Verfügung steht.Die ID IDC_LIST1 muß auch auch vorhanden sein, z.B. 'const UINT IDC_LIST1 = 101;' (VORSICHT diese Bezeichnungen werden auch vom Assistenten gewählt - also lieber 'ne andere EIGENE Bezeichnung wählen, damit nichts schief geht, oder die ID direkt angeben)
Gruß mathi
-
danke...
-
Hallo nichmal!
Und wie kann ich jetzt in die zweite Spalte einen Wert eingeben??
listBox.InsertColumn(0, "Hazard-Key");
listBox.InsertColumn(1, "Status");listBox.SetColumnWidth(0,250);
listBox.SetColumnWidth(1,50);listBox.InsertItem(0,"test",0); schreibt in 1te Splate
listBox.InsertItem(1,"test",0); schreibt auch in 1te SplateDanke Matthias
-
Hmm, wie man am Besten mit dem CListCtrl umgeht weiß ich auch nicht. Hab aber mal was ausprobiert. Die Spalten sind wohl das, was in der MSDN als SubItems bezeichnet wird. So ganz verstehe ich das CListCtrl auch noch nicht, aber folgendes sollte ersteinmal funktionieren:
listBox.InsertColumn(0, "Hazard-Key"); listBox.InsertColumn(1, "Status"); listBox.SetColumnWidth(0,250); listBox.SetColumnWidth(1,50); int anz = listBox.GetCountPerPage(); //Zeilen, die ins Control passen (ohne ScrollBalken) for(int i = 1; i<=anz; i++) { listBox.InsertItem(i-1, "", 0); } listBox.SetItemText(5,1,"Hallo"); //Zeile 6, Spalte 2
Gruß mathi
-
InsertColumn:
Erzeugt eine Column im ListCtrlInsertItem:
Erzeugt eine neu Zeile im ListCtrlSetItemText:
Setzt den Text je nach Parameterübergabe deines Items
So wie es mathi geschrieben hat.
Gibt aber auch etwas in der FAQ darüber
-
Hier die komplette Loesung:
Bei InsertColumn musst du angeben, welchen Index du mit der Splalte verbindest (Fett):
listBox.InsertColumn(0, "Hazard-Key", NULL, 270, 0);
listBox.InsertColumn(1, "Status", NULL, 50, 1);listBox.SetItemText(0,0,"Spalte1Zeile1");
listBox.SetItemText(0,0,"Spalte1Zeile2");
listBox.SetItemText(0,1,"Spalte2Zeile1");
listBox.SetItemText(0,1,"Spalte2Zeile2");Ergebnis:
Hazard-Key Status
Spalte1Zeile1 Spalte2Zeile1
Spalte1Zeile2 Spalte2Zeile2Gruss
Matze
[ Dieser Beitrag wurde am 17.09.2002 um 10:50 Uhr von na_ich editiert. ]
-
na_ich:
Bevor du ein SetItemText machst solltest du ein Item einfügen.
SetItemText auf 0,0 geht nur wenn es auch ein Item gibt.