Länge eines Textes in Pixel rausfinden in abhängigkeit von CFont?



  • habe Folgenden Code:

    // Schrift für Skala Bezeichung
    CFont l_new_font, *l_old_font;

    l_new_font.CreateFont(30, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, 0, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_ROMAN, "Times New Roman");
    		// Schrift zuweisen
    		l_old_font = oDC.SelectObject(&l_new_font); 
    
    		// Texte Zeichnen /////////////////////////////////////
    
    		oDC.TextOut(5, iR+(iUnitY*i)+1, "Hallo"		
    
    		// Alte Schrift wieder zurückholen
    		oDC.SelectObject(l_old_font);
    
    		// Schrift löschen
    		l_new_font.DeleteObject();
    

    Wie kann ich nun die Länge der Pixel des TExtes "HAllo" in abhängigkeit mit der Schrift Größe etc. von CFont ermitteln??



  • GetTextExtent oder so ähnlich



  • afaik kannst du TextOut mit einem Flag aufrufen, so dass der Text nicht gezeichnet wird, aber der benötigte Platz wird als Rechteck zurückgegeben.

    Kuck mal in der Hilfe.

    --Edit--
    Oder DrawText ?? Eins von beiden jedenfalls!



  • Vielleicht kannst du auch was mit den Funktionen hier anfangen ... die hab ich mal irgendwann benutzt.

    GetTextMetrics(...)
    GetTextExtent(...)


Anmelden zum Antworten