Ich folge einem Tutorial hier , um eine horizontale Bildlaufleiste zu einer Liste hinzuzufügen Steuerung. Alles, was dort funktioniert, außer der TextWidth () - Funktion (VC ++ 2012 sagt, es ist undefiniert), so fand ich diese Frage. Aber ich habe keine Ahnung, wie man eine hdc initialisiert, also habe ich das . Aber GetTextExtentPoint32 gibt immer Null zurück.
Irgendeine Idee, wie ich das lösen kann?
Mein Code sieht so aus (nach dem Bearbeiten):
%Vor%(szMessage enthält Benutzereingaben)
Ok, um meine Frage zu beantworten: Der obige Code (siehe Frage) gibt einen viel zu hohen Wert für Size.cx, weil MESSAGE_SIZE 1000 ist und nicht die Größe der tatsächlichen Zeichenkette, also habe ich stattdessen strMessage.c_str und strMessage.size () benutzt. Dies führte immer noch zu kleinen Ungenauigkeiten bei der Ausgabe. Ich nahm an, dass dies daran lag, dass die falsche Schriftart verwendet wurde, also habe ich manuell eine Schriftart erstellt. Jetzt gibt es einen korrekten Wert für Size.cx. Der Code sieht jetzt so aus:
%Vor%später im Code:
%Vor%Bearbeiten:
%Vor%Funktioniert auch und erfordert nicht, dass Sie eine Schriftart erstellen oder die Schriftart des Steuerelements bearbeiten