Systemschrift Objekt erstellen
-
Hallo!
Wie kann ich ein CFont (CreateFont) erstellen, dass die Systemschrift verwendet - ich glaube MS Shell Dlg - und die korrekte Größe? Der erste Parameter von CreateFont (nHeight) erwartet die Größe in "logical units". Wie kann ich die systemspezifische Größe herausbekommen?
Grüsse Gerd
-
8 Punkt ist Standard. 1 Punkt = 1/72 Zoll. Also umrechnen.
CFont::CreatePointFontIndirect macht das für Dich
http://msdn2.microsoft.com/en-us/library/1d59y970(VS.80).aspx
-
Martin Richter schrieb:
8 Punkt ist Standard. 1 Punkt = 1/72 Zoll. Also umrechnen.
CFont::CreatePointFontIndirect macht das für Dich
http://msdn2.microsoft.com/en-us/library/1d59y970(VS.80).aspxDie Umrechnung verstehe nicht ganz. CreatePointFontIndirect erwartet eine Schriftgröße in Pixeln. 1 Punkt ist 1/72 (72 = dpi?). Wie komme ich nun von Point auf Pixel?
Grüsse Gerd
-
Was liest Du denn. Es werden 1/10 Punkt als lfHeigt erwartet.
Die Umrechnung kannst Du selbst im MFC Code nachlesen...
-
Martin Richter schrieb:
Was liest Du denn. Es werden 1/10 Punkt als lfHeigt erwartet.
Die Umrechnung kannst Du selbst im MFC Code nachlesen...Ich war nur etwas irritiert. Da in der Parameterbeschreibung steht "For instance, set lfHeight to 120 to request a 12-point font.". Im Quellcode steht aber
// request a 12-pixel-height font lf.lfHeight = 120;So dass ich nun nicht wusste ob lfHeight die Höhe in Pixel oder in Point angibt.
Nun würde ich aber dennoch gerne wissen wie ich an die Point-Größe der Systemschriftart komme. Windows < Vista verwendet 8pt. Vista hingegen hat 9pt als Standard.
Grüsse Gerd
-
Das macht IMHO der Font Mapper automatisch. MS Shell Dlg ist kein echter Font.