Schriftgröße und -breite in mm für beliebige Schrift in dialogbasierter Anwendung
-
Hallo,
ich versuche nun schon seit längerer Zeit, die Höhe und Breite von Schriftzeichen festzustellen, die ein Anwender aus dem choosefont-Dialog auswählt. Da ich mit einer dialogbasierten Anwendung arbeite, habe ich kein OnDraw, das mir einen Gerätekontext zur Verfügung stellt. Meine bisherige Vorgehensweise ist folgende:
Benutzer gibt Zeichen ein, klickt auf Button, womit der ChooseFont-Dialog aufgeht, wählt Schriftart und -Größe aus. Beim Schließen des Dialogs mit OK werden die neuen Werte in der LOGFONT-Struktur gespeichert, den eingegebenen Zeichen zugewiesen (das geht) und die LOGFONT -Struktur dem aktuellen Gerätekontext mit SelectObject zugewiesen. Mit GetTextMetrics und GetTextExtend hole ich mir die Werte in eine TEXTMETRIC-Struktur bzw CSize-Klasse. Die dort eingelesenen Werte sind jedoch immer gleich, Texthöhe ist demnach immer 240, Textbreite für ein Zeichen immer 120. In der LOGFONT-Struktur sind aber die geänderten Werte. Es scheint so, als ob beim Laden dieser Struktur in den Gerätekontext nicht aktualisiert wird.
Ich brauche das, weil ich anhand der Schriftart und -größe, die ein Benutzer wählt, berechnen muss, wie groß das Rechteck, das ich um die Eingabe zeichne , sein muss. Ich möchte zur Schrift 0,5 mm Abstand halten.
Weiß jemand Hilfe?
DRINGEND!
Danke,
Franziska