Länge eines Strings
-
Hallo,
ich will die Länge eines CString (in Pixel) erfragen. Am besten in Verbindung mit einem CFont-Objekt (also wieviele Pixel man braucht, um diesen CString mit der angegebenen Schrift darzustellen). Weiß jemand wie sowas geht? Die Höhe eines Zeichens davon könnte ich auch noch gebrauchen
Auf jeden Fall vielen Dank im Voraus
-
Mhh, eventuell gehts so:
mit CFont::GetLogFont( LOGFONT * pLogFont ) die LOGFONT Struct des selectierten Fonts abholen, in pLogFont->lfWidth sollte die durchschnittliche Breite eines Buchstaben stehen. Danach sollte
CString::GetLength() * pLogFont->lfWidth
Die gesuchte Breite des Strings ergeben.
Hab sowas selbst noch nicht versucht, aber das ist so das was mir nach kurzem stöbern in der MSDN so spontan einfällt.
-
Hi,
danke für deine Antwort
das Problem ist aber, dass ich auf keinen Fall die durchschnittliche Breite will (ein i ist ja weniger breit als ein m oder so...) sondern eben die exakte Länge...
-
Hi!
Versuch mal so:CDC* pDC = GetDC(); CSize csSize = pDC->GetTextExtent(strDeinString); int iStringWidth = csSize.cx;
-
Genau das, was ich brauche Vielen Dank.
-
Du solltest aber vorher noch den CFont in den CDC selektieren wenn du das mit verschiedenen Fonts machen willst...