LOGFONTW-Struktur (wingdi.h)

Die LOGFONT-Struktur definiert die Attribute einer Schriftart.

Syntax

typedef struct tagLOGFONTW {
  LONG  lfHeight;
  LONG  lfWidth;
  LONG  lfEscapement;
  LONG  lfOrientation;
  LONG  lfWeight;
  BYTE  lfItalic;
  BYTE  lfUnderline;
  BYTE  lfStrikeOut;
  BYTE  lfCharSet;
  BYTE  lfOutPrecision;
  BYTE  lfClipPrecision;
  BYTE  lfQuality;
  BYTE  lfPitchAndFamily;
  WCHAR lfFaceName[LF_FACESIZE];
} LOGFONTW, *PLOGFONTW, *NPLOGFONTW, *LPLOGFONTW;

Member

lfHeight

Die Höhe der Zeichenzelle oder des Zeichens der Schriftart in logischen Einheiten. Der Zeichenhöhenwert (auch als em height bezeichnet) ist der Wert der Zeichenzellenhöhe abzüglich des inneren Leitwerts. Die Schriftartzuordnung interpretiert den in lfHeight angegebenen Wert wie folgt.

Wert Bedeutung
> 0 Die Schriftartzuordnung transformiert diesen Wert in Geräteeinheiten und gleicht ihn mit der Zellhöhe der verfügbaren Schriftarten ab.
0 Der Schriftartzuordnungsmodul verwendet einen Standardwert für die Höhe, wenn er nach einer Übereinstimmung sucht.
< 0 Die Schriftartzuordnung transformiert diesen Wert in Geräteeinheiten und gleicht seinen absoluten Wert mit der Zeichenhöhe der verfügbaren Schriftarten ab.
 

Bei allen Höhenvergleichen sucht der Schriftartzuordnungs-Steller nach der größten Schriftart, die die angeforderte Größe nicht überschreitet.

Diese Zuordnung erfolgt, wenn die Schriftart zum ersten Mal verwendet wird.

Für den MM_TEXT Zuordnungsmodus können Sie die folgende Formel verwenden, um eine Höhe für eine Schriftart mit einer angegebenen Punktgröße anzugeben:


lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);

lfWidth

Die durchschnittliche Breite der Zeichen in der Schriftart in logischen Einheiten. Wenn lfWidth 0 ist, wird das Seitenverhältnis des Geräts mit dem Digitalisierungsseitenverhältnis der verfügbaren Schriftarten abgeglichen, um die nächstgelegene Übereinstimmung zu finden, die durch den absoluten Wert der Differenz bestimmt wird.

lfEscapement

Der Winkel in zehntel Grad zwischen dem Henisierungsvektor und der x-Achse des Geräts. Der Escapementvektor ist parallel zur Basiszeile einer Textzeile.

Wenn der Grafikmodus auf GM_ADVANCED festgelegt ist, können Sie den Escapementwinkel der Zeichenfolge unabhängig vom Ausrichtungswinkel der Zeichen der Zeichenfolge angeben.

Wenn der Grafikmodus auf GM_COMPATIBLE festgelegt ist, gibt lfEscapement sowohl die Escape als auch die Ausrichtung an. Sie sollten lfEscapement und lfOrientation auf den gleichen Wert festlegen.

lfOrientation

Der Winkel in zehntel Grad zwischen der Basislinie jedes Zeichens und der x-Achse des Geräts.

lfWeight

Die Gewichtung der Schriftart im Bereich von 0 bis 1000. Beispielsweise ist 400 normal und 700 fett. Wenn dieser Wert 0 ist, wird eine Standardgewichtung verwendet.

Die folgenden Werte werden aus Gründen der Benutzerfreundlichkeit definiert.

Wert Weight
FW_DONTCARE 0
FW_THIN 100
FW_EXTRALIGHT 200
FW_ULTRALIGHT 200
FW_LIGHT 300
FW_NORMAL 400
FW_REGULAR 400
FW_MEDIUM 500
FW_SEMIBOLD 600
FW_DEMIBOLD 600
FW_BOLD 700
FW_EXTRABOLD 800
FW_ULTRABOLD 800
FW_HEAVY 900
FW_BLACK 900

lfItalic

Eine kursiv geschriebene Schriftart, wenn sie auf TRUE festgelegt ist.

lfUnderline

Eine unterstrichene Schriftart, wenn sie auf TRUE festgelegt ist.

lfStrikeOut

Eine Streichschriftart, wenn sie auf TRUE festgelegt ist.

lfCharSet

Der Zeichensatz. Die folgenden Werte sind vordefiniert:

  • ANSI_CHARSET
  • BALTIC_CHARSET
  • CHINESEBIG5_CHARSET
  • DEFAULT_CHARSET
  • EASTEUROPE_CHARSET
  • GB2312_CHARSET
  • GREEK_CHARSET
  • HANGUL_CHARSET
  • MAC_CHARSET
  • OEM_CHARSET
  • RUSSIAN_CHARSET
  • SHIFTJIS_CHARSET
  • SYMBOL_CHARSET
  • TURKISH_CHARSET
  • VIETNAMESE_CHARSET
Koreanische Sprachausgabe von Windows:
  • JOHAB_CHARSET
Sprachausgabe "Naher Osten" von Windows:
  • ARABIC_CHARSET
  • HEBREW_CHARSET
Thai-Sprachausgabe von Windows:
  • THAI_CHARSET
Der wert OEM_CHARSET gibt einen vom Betriebssystem abhängigen Zeichensatz an.

DEFAULT_CHARSET wird basierend auf dem aktuellen Systemgebietsschema auf einen Wert festgelegt. Wenn das Systemgebietsschema beispielsweise englisch (USA) ist, wird es auf ANSI_CHARSET festgelegt.

Schriftarten mit anderen Zeichensätzen können im Betriebssystem vorhanden sein. Wenn eine Anwendung eine Schriftart mit einem unbekannten Zeichensatz verwendet, sollte sie nicht versuchen, Zeichenfolgen zu übersetzen oder zu interpretieren, die mit dieser Schriftart gerendert werden.

Dieser Parameter ist bei der Schriftzuordnung wichtig. Um konsistente Ergebnisse beim Erstellen einer Schriftart zu gewährleisten, geben Sie keine OEM_CHARSET oder DEFAULT_CHARSET an. Wenn Sie einen Schriftartnamen im lfFaceName-Member angeben, stellen Sie sicher, dass der lfCharSet-Wert dem Zeichensatz der in lfFaceName angegebenen Schriftart entspricht.

lfOutPrecision

Die Ausgabegenauigkeit. Die Ausgabegenauigkeit definiert, wie eng die Ausgabe der Höhe, Breite, Zeichenausrichtung, Escapement, Tonhöhe und Schrifttyp der angeforderten Schriftart entsprechen muss. Dieses Argument einen der folgenden Werte annehmen.

Wert Bedeutung
OUT_CHARACTER_PRECIS Wird nicht verwendet.
OUT_DEFAULT_PRECIS Gibt das Standardverhalten der Schriftartzuordnung an.
OUT_DEVICE_PRECIS Weist die Schriftartzuordnung an, eine Geräteschriftart auszuwählen, wenn das System mehrere Schriftarten mit demselben Namen enthält.
OUT_OUTLINE_PRECIS Dieser Wert weist die Schriftartzuordnung an, zwischen TrueType und anderen gliederungsbasierten Schriftarten auszuwählen.
OUT_PS_ONLY_PRECIS Weist die Schriftartzuordnung an, nur aus PostScript-Schriftarten auszuwählen. Wenn keine PostScript-Schriftarten im System installiert sind, kehrt die Schriftartzuordnung zum Standardverhalten zurück.
OUT_RASTER_PRECIS Weist die Schriftartzuordnung an, eine Rasterschriftart auszuwählen, wenn das System mehrere Schriftarten mit demselben Namen enthält.
OUT_STRING_PRECIS Dieser Wert wird nicht vom Schriftartzuordnungs-Element verwendet, aber er wird zurückgegeben, wenn Rasterschriftarten aufgelistet werden.
OUT_STROKE_PRECIS Dieser Wert wird nicht vom Schriftartzuordnungs-Objekt verwendet, er wird jedoch zurückgegeben, wenn TrueType, andere gliederungsbasierte Schriftarten und Vektorschriftarten aufgelistet werden.
OUT_TT_ONLY_PRECIS Weist die Schriftartzuordnung an, nur aus TrueType-Schriftarten auszuwählen. Wenn keine TrueType-Schriftarten im System installiert sind, kehrt die Schriftartzuordnung zum Standardverhalten zurück.
OUT_TT_PRECIS Weist die Schriftartzuordnung an, eine TrueType-Schriftart auszuwählen, wenn das System mehrere Schriftarten mit demselben Namen enthält.
 

Anwendungen können die Werte OUT_DEVICE_PRECIS, OUT_RASTER_PRECIS, OUT_TT_PRECIS und OUT_PS_ONLY_PRECIS verwenden, um zu steuern, wie die Schriftartzuordnung eine Schriftart auswährt, wenn das Betriebssystem mehrere Schriftarten mit einem angegebenen Namen enthält. Wenn ein Betriebssystem beispielsweise eine Schriftart mit dem Namen Symbol im Raster- und TrueType-Formular enthält, erzwingt die Angabe OUT_TT_PRECIS, dass die Schriftartzuordnung die TrueType-Version auswählen muss. Wenn Sie OUT_TT_ONLY_PRECIS angeben, muss die Schriftartzuordnung eine TrueType-Schriftart auswählen, auch wenn sie eine TrueType-Schriftart mit einem anderen Namen ersetzen muss.

lfClipPrecision

Die Abschneidegenauigkeit. Die Abschneidegenauigkeit definiert, wie Zeichen abgeschnitten werden, die sich teilweise außerhalb des Beschneidungsbereichs befinden. Es kann sich um einen oder mehrere der folgenden Werte handeln.

Weitere Informationen zur Ausrichtung von Koordinatensystemen finden Sie in der Beschreibung des nOrientation-Parameters .

Wert Bedeutung
CLIP_CHARACTER_PRECIS Wird nicht verwendet.
CLIP_DEFAULT_PRECIS Gibt das Standard-Abschneideverhalten an.
CLIP_DFA_DISABLE Windows XP SP1: Deaktiviert die Schriftartzuordnung für die Schriftart. Beachten Sie, dass dieses Flag keine Auswirkungen auf jede Plattform nach Windows Server 2003 hat.
CLIP_EMBEDDED Sie müssen dieses Flag angeben, um eine eingebettete schreibgeschützte Schriftart zu verwenden.
CLIP_LH_ANGLES Wenn dieser Wert verwendet wird, hängt die Drehung für alle Schriftarten davon ab, ob die Ausrichtung des Koordinatensystems links- oder rechtshändig ist. Wenn nicht verwendet, drehen Geräteschriftarten immer gegen den Uhrzeigersinn, aber die Drehung anderer Schriftarten hängt von der Ausrichtung des Koordinatensystems ab.
CLIP_MASK Wird nicht verwendet.
CLIP_DFA_OVERRIDE Deaktiviert die Schriftartzuordnung für die Schriftart. Dies ist identisch mit CLIP_DFA_DISABLE, kann aber in einigen Situationen Probleme haben. Das empfohlene Flag für die Verwendung ist CLIP_DFA_DISABLE.
CLIP_STROKE_PRECIS Wird nicht vom Schriftartzuordnungs-Objekt verwendet, sondern wird zurückgegeben, wenn Raster-, Vektor- oder TrueType-Schriftarten aufgelistet werden. Aus Gründen der Kompatibilität wird dieser Wert immer zurückgegeben, wenn Schriftarten aufgelistet werden.
CLIP_TT_ALWAYS Wird nicht verwendet.

lfQuality

Die Ausgabequalität. Die Ausgabequalität definiert, wie sorgfältig die Grafikgeräteschnittstelle (GDI) versuchen muss, die Attribute für logische Schriftarten mit denen einer tatsächlichen physischen Schriftart abzugleichen. Dieses Argument einen der folgenden Werte annehmen.

Wert Bedeutung
ANTIALIASED_QUALITY Schriftart wird immer antialiasiert, wenn die Schriftart sie unterstützt und die Schriftgröße nicht zu klein oder zu groß ist.
CLEARTYPE_QUALITY Wenn festgelegt, wird Text (wenn möglich) mit der ClearType-Antialiasing-Methode gerendert. Weitere Informationen finden Sie unter Hinweise.
DEFAULT_QUALITY Das Aussehen der Schriftart spielt keine Rolle.
DRAFT_QUALITY Die Darstellung der Schriftart ist weniger wichtig als bei verwendung PROOF_QUALITY. Für GDI-Rasterschriftarten ist die Skalierung aktiviert, was bedeutet, dass mehr Schriftgrößen verfügbar sind, aber die Qualität möglicherweise niedriger ist. Fett-, Kursiv-, Unterstrichen- und Streichschriftarten werden bei Bedarf synthetisiert.
NONANTIALIASED_QUALITY Schriftart wird nie antialiased.
PROOF_QUALITY Die Zeichenqualität der Schriftart ist wichtiger als die exakte Übereinstimmung der Attribute für logische Schriftarten. Für GDI-Rasterschriftarten ist die Skalierung deaktiviert, und die Schrift, die der Größe am nächsten ist, wird ausgewählt. Obwohl die gewählte Schriftgröße möglicherweise nicht genau zugeordnet wird, wenn PROOF_QUALITY verwendet wird, ist die Qualität der Schriftart hoch und es gibt keine Verzerrung der Darstellung. Fett-, Kursiv-, Unterstrichen- und Streichschriftarten werden bei Bedarf synthetisiert.
 

Wenn weder ANTIALIASED_QUALITY noch NONANTIALIASED_QUALITY ausgewählt ist, wird die Schriftart nur dann antialiasiert, wenn der Benutzer glatte Bildschirmschriftarten in Systemsteuerung wählt.

lfPitchAndFamily

Die Tonhöhe und familie der Schriftart. Die beiden Bits mit niedriger Reihenfolge geben die Tonhöhe der Schriftart an und können einer der folgenden Werte sein.

  • DEFAULT_PITCH
  • FIXED_PITCH
  • VARIABLE_PITCH
Die Bits 4 bis 7 des Elements geben die Schriftfamilie an und können einer der folgenden Werte sein.
  • FF_DECORATIVE
  • FF_DONTCARE
  • FF_MODERN
  • FF_ROMAN
  • FF_SCRIPT
  • FF_SWISS
Der richtige Wert kann mithilfe des bitweisen OR-Operators (|) abgerufen werden, um eine Tonhöhenkonstante mit einer Familienkonstante zu verknüpfen.

Schriftfamilien beschreiben das Aussehen einer Schriftart allgemein. Sie sind für die Angabe von Schriftarten vorgesehen, wenn die gewünschte exakte Schriftart nicht verfügbar ist. Die Werte für Schriftfamilien sind wie folgt:

Wert Bedeutung
FF_DECORATIVE Schriftarten der Neuheit. Ein Beispiel ist Old English.
FF_DONTCARE Verwenden Sie die Standardschriftart.
FF_MODERN Schriftarten mit konstanter Strichbreite (Monospace), mit oder ohne Serifen. Monospace-Schriftarten sind in der Regel modern. Pica, Elite und CourierNew sind Beispiele.
FF_ROMAN Schriftarten mit variabler Strichbreite (proportional) und serifen. Ein Beispiel ist MS Serif.
FF_SCRIPT Schriftarten, die wie Handschrift aussehen. Bespiele dafür sind Script und Cursive.
FF_SWISS Schriftarten mit variabler Strichbreite (proportional) und ohne Serifen. Ein Beispiel ist MS Sans Serif.

lfFaceName[LF_FACESIZE]

Eine mit 0 (null) endende Zeichenfolge, die den Namen der Schriftart angibt. Die Länge dieser Zeichenfolge darf 32 TCHAR-Werte nicht überschreiten, einschließlich der endenden NULL. Die EnumFontFamiliesEx-Funktion kann verwendet werden, um die Schriftartnamen aller derzeit verfügbaren Schriftarten aufzulisten. Wenn lfFaceName eine leere Zeichenfolge ist, verwendet GDI die erste Schriftart, die den anderen angegebenen Attributen entspricht.

Bemerkungen

In den folgenden Situationen wird das ClearType-Antialiasing nicht unterstützt:

  • Text wird auf einem Drucker gerendert.
  • Die Anzeige ist auf maximal 256 Farben festgelegt.
  • Text wird auf einem Terminalserverclient gerendert.
  • Die Schriftart ist keine TrueType-Schriftart oder OpenType-Schriftart mit TrueType-Konturen. Beispielsweise wird die ClearType-Antialiasing nicht unterstützt: Type 1-Schriftarten, Postscript-OpenType-Schriftarten ohne TrueType-Gliederungen, Bitmapschriftarten, Vektorschriftarten und Geräteschriftarten.
  • Die Schriftart verfügt über optimierte eingebettete Bitmaps für alle Schriftgrößen, die die eingebetteten Bitmaps enthalten. Dies tritt beispielsweise häufig in ostasiatischen Schriftarten auf.

Hinweis

Der wingdi.h-Header definiert LOGFONT als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Aliases mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [Desktop-Apps | UWP-Apps]
Kopfzeile wingdi.h (windows.h einschließen)

Weitere Informationen

CreateFont

CreateFontIndirect

EnumFontFamiliesEx

Schriftarten- und Textstrukturen

Übersicht über Schriftarten und Text