Hallo Zusammen,
Da ich in meinem aktuellen Projekt nur sehr grundlegende GUI-Elemente wie z.B. Buttons brauche, habe ich mir gedacht, dass ich die auch gut selbst machen kann.
Mein Problem ist jetzt, wie rechne ich die Textposition auf z.B. einem Button aus?
Bis jetzt hatte ich das so probiert: (unter der Annahme dass z.B. ein Buchstabe der Schriftgröße 14 auch 14 Pixel groß ist
)
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
|
float Temp = static_cast<float>(LabelText.GetNumChars());
Temp /= 2;
LabelText.SetPosition ((PosX+Width/2) - Temp*LabelText.GetCharacterSize(), (PosY+Height/2) - LabelText.GetCharacterSize()/2);
/*- LabelText.GetCharacterSize()/2 weil das "Center" des Texts links oben liegt.
Label Text: Der Text, Center liegt links oben
Temp: Anzahl der Zeichen im Text (Temp/=2, weil ich dachte, dass ich einfach die Hälfte der Zeichen * Zeichengröße von der Mitte des Buttons aus nach links verschiebe
PosX/PosY: Position des Buttons, liegt auch links oben
Width/height: Breite bzw. Höhe des Buttons */
|
Die Bestimmung der Y-Koordinate des Textes funktioniert ganz gut, aber bei der X-Koordinate komme ich nicht weiter. Bei kleinen Texten kommt es noch etwa hin, aber bei z.B. "ABC hallo bla bla", liegt der Text viel zu weit links und beginnt sogar schon außerhalb des Buttons.
Zusammengefasst: Wie berechne ich die Position eines Textes, sodass er mittig liegt? Oder wie bekomme ich anhand der Zeichengröße die Größe eines Zeichens in Pixeln?
lg chaia