Breite eines CString in Pixel



  • Hi,

    wie kann ich die Breite eines CString in Pixel bekommen.

    Hintergrund ist, ich habe eine Tabelle mit Text befüllt. Aber die Spaltenbreite ist immer zu klein, damit der Text vollständig angezeigt wird. Eigentlich müsste ich nur die Breite des längsten Strings raus bekommen und könnte dann die neue Spaltenbreite setzen.

    Gruß,
    Phips!



  • Ups, ich sollte vorher genauer suchen. Hier gibts ja massig Antworten zu der Frage.

    Phips!



  • Hallo,

    ich bins doch nochmal. Trotz der anfänglichen Euphorie hats leider nicht so geklappt, wie ich wollte. Folgendermassen habe ich die Spaltenbreite des FlexGrid gesetzt:

    CDC *pDC = Grid.GetDC();
    int Breite=pDC->GetTextExtent("Da ist mein String");
    Grid.SetColWidth(1,Breite);
    

    Aber was da raus kommt, ist viel zu wenig. Der Wert variiert zwar mit der Länge des Strings ein wenig, aber trotzdem ist er viiiieeel zu klein. Wenn ich ihn testweise mit 12 multipliziere und noch 110 dazu addiere, dann passts bei den meisten String-Längen. Ich weiß nicht, wo der Fehler liegen könnte. Hat jemand einen Vorschlag?
    Außerdem hab ich in den Forenbeiträgen gesehen, dass man einen Font mit dem CDC verbinden soll, damit die Breite korrekt berechnet wird. Nur weiß ich nicht über welchen Befehl ich den CFont einfließen lassen soll. Kann mir da mal jemand mit dem Zaunpfahl eine runter hauen?

    Gruß
    Phips!


Anmelden zum Antworten