Breite in Pixel bei CFont!



  • Hallo kann mir jemand sagen wie ich die Pixelbreite eines Zeichens bei CFont bestimmen kann?



  • Mit CFont::GetLogFont kommst du an diese Informationen, denke ich. Bedenke, dass bei TT-Schriftarten nicht jedes Zeichen gleich breit ist. Dir wird der Durchschnitt angegeben.


  • Mod

    Mit GetTextExtent! Odr auch mit TextOut, DrawText bei der Ausgabe.

    Oder noch detailierter mit GetCharABCWidths oder GetCharacterPlacement!



  • DrawText gibt den Offset für die Y-Koordiante zurück!
    Aber wie bekomme ich den Offset für die X-Koordinate?


  • Mod

    DT_CALCRECT!



  • DT_CALCRECT aktualisiert doch nur die Höhe und Breite für Drawtext!

    ich versuche es mal zu erklären!

    ich schreiben einen text mit drawtext in ein definiertes rechteck!
    den Wert den ich zurückbekomme von Drawtext ist die höhe des Fonts in Pixel!
    ...
    Dieser Text hat jetzt nicht die komplete breite des definierten Rechtecks ausgefüllt also brauche ich die Anzahl Pixel auf der X-Koordinate um den den nächsten Text zuschreiben der noch in das definierte Crect passt!
    Dafür muss ich die Crect.left abändern ! Die Frage ist wie bekommen ich den Wert?


  • Mod

    1. Gibt es noch GetTextExtent.
    2. Hast Du die Doku von DT_CALCRECT gelesen?
    If there is only one line of text, DrawText modifies the right side of the rectangle so that it bounds the last character in the line. In either case, DrawText returns the height of the formatted text but does not draw the text.

    Was baruchst Du mehr?


Log in to reply