Schriftbreite bei MFC

Krümel

Mitglied
Hallo!

Ich habe ein Programm unter Verwendung von MFC (Visual Studio .NET)
in dem ich Text auf die Arbeitsfläche schreiben möchte. Ich habe das mit

pDC->TextOut( x, y, "Hallo");

gemacht. Nun möchte ich aber noch einen Rahmen um diesen Text zeichnen
und zwar mit

pDC->Rectangle( x1, y1, x2, y2);

Das Problem ist nun, dass ich zwar weiß, wie hoch dieser Rahmen sein muss
(da ich ja die Schrifthöhe z.B. 14 kenne). Große Probleme habe ich aber bei der
Schriftbreite. Diese kann man zwar auch bei der Erstellung der Schrift mit

CFont schrift;
schrift.CreateFont( .......) mit angeben aber dabei handelt es sich nur um die
durchschnittliche Breite; Wenn der Text z.B. "mmmmmmmmmmmmm"
oder "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii" lautet bringt mir das überhaupt nichts.

Hat jemand eine Idee wie ich die tatsächliche Breite des Textes
herausbekommen kann um so einen vernünftigen Rahmen um den Text zu
bekommen?

Ach ja, ich brauche wirklich die Breite (auch noch für andere Dinge) und nicht
einen Rahmen auf irgendeine andere Weise, es sollte schon mit
pDC->Rectangle(...) sein.

Liebe Grüße
Michael
 
Mit pDC->GetTextExtent sollte das klappen. Allerdings ist das nicht immer ganz genau (seltsame Schriftarten mit Riesenschnörkeln stehen manchmal drüber), aber eine bessere Methode kenne ich dann auch nicht.
 

Neue Beiträge

Zurück