Zeile einer CListBox mit Zeilenumbruch
-
Hallo ich möcht in einer Zeile meiner Listbox einen 2 zeiligen Text reinschriben aber in der Listbox soll nur eine Zeile dafür in anspruch genommen werden. Wie mache das ?
thx

-
Vielleicht, indem man die Zeilen vorher hintereinander in eine Zeile kopiert?
-
Wie meinst du das Renè kannst du mir da vieleicht ein Beispiel geben habe wenig mit dieser Listbox bisher gemacht.
danke
-
CString zeile1="abc", zeile2="def"; listbox.AddString( zeile1+zeile2);
-
habe es ausprobiert aber er schreibt alles in einer Zeile ich möchte aber das er das folgend in die Listbox reinschreibt:
// richtig
abc // untereinander in einer Listbox-Zeile
defnicht
// falsch
abcdef.Der Text ist grösser wie 300 Zeilen, diese möchte ich in einer Listbox-Zeile reinschreiben.
danke für die Hilfe bisher
-
Hm,
also da die Listbox kein automatische 'Wordwrapping' macht, musst Du dann wohl die LB ableiten, mit SetItemHeight die Einträge auf die doppelte Höhe setzen, manuell die Position berechnen, an dem der String umgebrochen werden muss, und dann diese OwnerDrawn-Listbox in OnDrawItem selber zeichnen
-
Vielleicht meine Beispiel wird hilfreich
nur nimm statt * Leerstrich im deine Fallvoid CSpeed_EuropeDlg::OnBUTTONSchweiz()
{
CListBox *pBoxInnerOrts;
CListBox *pBoxAusserOrts;
CListBox *pBoxSchnellStrasse;
CListBox *pBoxAutobahn;pBoxInnerOrts = (CListBox *)GetDlgItem(IDC_LIST_InnerOrts);
pBoxAusserOrts = (CListBox *)GetDlgItem(IDC_LIST_AusserOrts);
pBoxSchnellStrasse = (CListBox *)GetDlgItem(IDC_LIST_SchnellStrasse);
pBoxAutobahn = (CListBox *)GetDlgItem(IDC_LIST_Autobahn);CFile datei("LaenderDat.txt", CFile::modeRead);
char string[4000];
char buffer[4000];
char *tocenpointer = buffer;CString behaelter;
CString position;
int laenge;
int zaehler = 14;pBoxInnerOrts->ResetContent();
pBoxAusserOrts->ResetContent();
pBoxSchnellStrasse->ResetContent();
pBoxAutobahn->ResetContent();datei.Read(string,sizeof (string));
position.Insert(0,string);
laenge = position.Find("Schweiz");
laenge +=7; // Position Korrektur,hinter Schweiztry
{
while(zaehler != 0)
{
if(tocenpointer != NULL)
{
tocenpointer = _tcstok( string + laenge,"*");
behaelter.Format("%s",tocenpointer);
laenge += behaelter.GetLength() + 1;
pBoxInnerOrts->AddString(behaelter);tocenpointer = _tcstok( string + laenge,"*");
behaelter.Format("%s",tocenpointer);
laenge += behaelter.GetLength() + 1;pBoxAusserOrts->AddString(behaelter);
tocenpointer = _tcstok( string + laenge,"*");
behaelter.Format("%s",tocenpointer);
laenge += behaelter.GetLength() + 1;pBoxSchnellStrasse->AddString(behaelter);
tocenpointer = _tcstok( string + laenge,"*");
behaelter.Format("%s",tocenpointer);
laenge += behaelter.GetLength() + 3;pBoxAutobahn->AddString(behaelter);
zaehler--;
tocenpointer = strtok( NULL,"\n");
}
}
datei.Close();
UpdateData(FALSE);
}
catch(CFileException* e)
{
AfxGetMainWnd()->MessageBox("Fehler beim Öffnen der Datei!");;
e->Delete();
}
}