TextOut() mit Zeilenumbruch

Thomasio

Erfahrenes Mitglied
Ich habe einen Text als std::string, mit diversen \n als Zeilenumbruch darin
Auch habe ich ein Fenster mit einem WM_PAINT event
Alles wunderbar, Hintergrund passt, Textfarbe ist gesetzt, bleiben nur 2 Probleme

1) Wie konvertiere ich \n zu Zeilenumbruch im TextOut()?
Vermutlich brauche ich einen neuen TextOut() mit neuen Koordinaten?
2) Wie erzeuge ich extra Zeilenumbrüche wenn eine Zeile im String länger ist als das Fenster breit?
Bei MSDN steht was dazu, aber das sieht wie ein chinesischer Dialekt aus, ich bleibe schon beim Versuch die Länge meines (Teil-)Text zu errechnen stecken und blicke nicht durch

Kann jemand das auf einfache Weise erklären?
 
1. Da vermutest Du richtig
2. Mit der CDC-Funktion GetTextExtent bekommst du die Höhe und Länge Deines Strings in logischen Einheiten in einem CSize-Objekt. Wenn die Summe aus Startpunkt und Länge des Strings größer ist als die Breite Deines Fensters, dann mußt du so lange hinten Wörter abschneiden, bis die Länge paßt. Den abgeschnittenen Teil schreibst du dann wieder mit TextOut in die nächste Zeile.
 
Zurück