TextOut() Dimension

Thomasio

Erfahrenes Mitglied
Ich bin mal wieder zu doof.
100 Artikel, wie man die Grösse eines Text berechnet, und ich verstehe es nicht.

Ich habe einen string, den ich im WM_PAINT mit TextOut() ausgeben möchte, und abhängig von der Länge, soll er im Fenster zentriert werden.
Das Fenster ist 160px breit, der Text in jedem Fall kürzer.

Code:
std::string OutString = "Irgendwas";

// Hier müsste ich die Breite berechnen
// so dass dann xpos = (160 - Breite) / 2

TextOut (hdc, xpos, 0, OutString.c_str(), OutString.length());

Hat jemand eine Erklärung für Dummies?
 
Da würde ich mit SetTextAlign(TA_CENTER | TA_BOTTOM) Die Ausgabe auf zentriert stellen. Dann bezieht sich der Punkt bei TextOut auf die Mitte der Unterkante des Strings.
 
Mit GetTextExtentPoint():
C++:
SIZE size;
GetTextExtentPoint(hdc, OutString.c_str(), OutString.size(), &size);
int xpos = (160 - size.cx) / 2;
TextOut (hdc, xpos, 0, OutString.c_str(), OutString.length());
Gruß
MCoder
 
Vielen Dank.
Wenn ich euch nicht hätte ....
Ganz besonders MCoder, du hast inzwischen echt was gut bei mir.
 

Neue Beiträge

Zurück