LOGFONTW-Struktur (shtypes.h)

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[32];
} LOGFONTW;

Member

lfHeight

Typ: LONG

Gibt die Höhe (in logischen Einheiten) der Zeichenzelle oder des Zeichens der Schriftart an. 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 BESCHREIBUNG
> 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.
 

Für alle Höhenvergleiche sucht der Schriftartzuordnungs-Benutzer 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 bestimmten Punktgröße anzugeben.

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

wobei MulDiv wie folgt definiert ist:

#define MulDiv(a,b,c)    (((a)*(b))/(c))

lfWidth

Typ: LONG

Gibt die durchschnittliche Breite (in logischen Einheiten) der Zeichen in der Schriftart an. Wenn lfWidth nicht 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

Typ: LONG

Gibt den Winkel in Zehntelgrad zwischen dem Vorschubvektor und der x-Achse des Geräts an. Der Escapementvektor ist parallel zur Basiszeile einer Textzeile.

Das Element "lfEscapement" gibt sowohl die Escapement als auch die Ausrichtung an. Sie sollten lfEscapement und lfOrientation auf den gleichen Wert festlegen.

lfOrientation

Typ: LONG

Gibt den Winkel in Zehntelgrad zwischen der Grundlinie aller Zeichen und der x-Achse des Geräts an.

lfWeight

Typ: LONG

Gibt die Stärke der Schriftart im Bereich von 0 bis 1000 an. Beispielsweise ist 400 normal und 700 fett. Wenn dieser Wert 0 ist, wird eine Standardgewichtung verwendet.

Die folgenden Werte werden zur Vereinfachung in Wingdi.h definiert.

Wert Gewichtung
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

Typ: BYTE

TRUE , um eine kursiv geschriebene Schriftart anzugeben.

lfUnderline

Typ: BYTE

TRUE , um eine unterstrichene Schriftart anzugeben.

lfStrikeOut

Typ: BYTE

TRUE , um eine Streichschriftart anzugeben.

lfCharSet

Typ: BYTE

Gibt den Zeichensatz an. 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
 
Koreanisches Windows
JOHAB_CHARSET
 
Middle-Eastern Windows
HEBREW_CHARSET
ARABIC_CHARSET
 
Thai Windows
THAI_CHARSET
 

Der OEM_CHARSET-Wert 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 der Wert ANSI_CHARSET.

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 Member ist beim Schriftzuordnungsprozess wichtig. Um konsistente Ergebnisse sicherzustellen, geben Sie einen bestimmten Zeichensatz an. Wenn Sie einen Schriftartnamen im lfFaceName-Element angeben, stellen Sie sicher, dass der lfCharSet-Wert mit dem Zeichensatz der in lfFaceName angegebenen Schriftart übereinstimmt.

lfOutPrecision

Typ: BYTE

Gibt die Genauigkeit der Ausgabe an. Die Ausgabegenauigkeit definiert, wie eng die Ausgabe der Höhe, Breite, Zeichenausrichtung, Escapement, Tonhöhe und Schrifttyp der angeforderten Schriftart entsprechen muss. Dies kann einer der folgenden Werte sein, die in Wingdi.h definiert sind:

Wert BESCHREIBUNG
OUT_DEFAULT_PRECIS Gibt das Standardverhalten der Schriftartenzuordnung an.
OUT_RASTER_PRECIS Weist den Schriftartenzuordnungser an, eine Rasterschriftart auszuwählen, wenn das System mehrere Schriftarten mit demselben Namen enthält.
OUT_STRING_PRECIS Dieser Wert wird nicht vom Schriftartenzuordnungs-Element verwendet, aber er wird zurückgegeben, wenn Rasterschriftarten aufgezählt werden.

lfClipPrecision

Typ: BYTE

Gibt die Genauigkeit für das Ausschneiden an. Die Beschneidungsgenauigkeit definiert, wie Zeichen beschnitten werden, die teilweise außerhalb des Beschneidungsbereichs liegen. Es kann sich um einen oder mehrere der folgenden Werte handeln, die in Wingdi.h definiert sind:

Wert BESCHREIBUNG
CLIP_DEFAULT_PRECIS Gibt das Standard-Clippingverhalten an.
CLIP_CHARACTER_PRECIS Wird nicht verwendet.
CLIP_STROKE_PRECIS Wird nicht vom Schriftartenzuordnungs-Objekt verwendet, wird aber zurückgegeben, wenn Raster-, Vektor- oder TrueType-Schriftarten aufgezählt werden.

lfQuality

Typ: BYTE

Gibt die Ausgabequalität an. Die Ausgabequalität definiert, wie sorgfältig der GDI versuchen muss, die Attribute für logische Schriftarten mit denen einer tatsächlichen physischen Schriftart abzugleichen. Dies kann einer der folgenden Werte sein, die in Wingdi.h definiert sind:

Wert BESCHREIBUNG
ANTIALIASED_QUALITY Aktiviert antialiasing für die Schriftart. Der Anzeigetreiber muss Antialiased-Text unterstützen, damit diese Einstellung funktioniert.
NONANTIALIASED_QUALITY Erzwingt die Verwendung der Entwurfsqualität, wenn der Registrierungsunterschlüssel HKEY_LOCAL_MACHINE\System\GDI\Fontsmoothing vorhanden ist.
CLEARTYPE_COMPAT_QUALITY Aktiviert ClearType-Text für die Schriftart mit kompatiblen Breiten. Eine kompatible Breite erzeugt Text, der den gleichen Abstand wie Nicht-ClearType-Text aufweist.
CLEARTYPE_QUALITY Aktiviert ClearType-Text für die Schriftart. Der Anzeigetreiber muss ClearType-Text unterstützen, damit diese Einstellung funktioniert.
DEFAULT_QUALITY Die Darstellung der Schriftart spielt keine Rolle.
DRAFT_QUALITY Für GDI-Rasterschriftarten ist die Skalierung aktiviert. Dies bedeutet, dass mehr Schriftgrößen verfügbar sind, die Qualität jedoch möglicherweise niedriger ist. Fett, kursiv, unterstrichen und durchgestrichene Schriftarten werden bei Bedarf synthetisiert.

lfPitchAndFamily

Typ: BYTE

Gibt die Tonhöhe und die Gruppe der Schriftart an. Die beiden Bits mit niedriger Reihenfolge geben die Tonhöhe der Schriftart an und können einer der folgenden Werte sein, die in Wingdi.h definiert sind:

  • DEFAULT_PITCH
  • FIXED_PITCH
  • MONO_FONT
  • VARIABLE_PITCH
Die Bits 4 bis 7 des Members geben die Schriftartgruppe an und können einer der folgenden Werte sein, die in Wingdi.h definiert sind:
  • FF_DECORATIVE
  • FF_DONTCARE
  • FF_MODERN
  • FF_ROMAN
  • FF_SCRIPT
  • FF_SWISS
Der richtige Wert kann mithilfe des booleschen OR-Operators abgerufen werden, um eine Tonhöhenkonstante mit einer Familienkonstante zu verbinden.

Schriftfamilien beschreiben das Aussehen einer Schriftart allgemein. Sie dienen zum Angeben von Schriftarten, wenn die genaue gewünschte Schriftart nicht verfügbar ist. Die Werte für Schriftartenfamilien sind wie folgt:

Wert BESCHREIBUNG
FF_DECORATIVE Neuheitsschriftarten, z. B. Altenglisch.
FF_DONTCARE Es ist egal oder weiß nicht.
FF_MODERN Schriftarten mit konstanter Strichbreite (Monospace), mit oder ohne Serifen. Monospace-Schriftarten sind in der Regel modern, z. B. Pica, Elite und Courier New.
FF_ROMAN Schriftarten mit variabler Strichbreite (proportional) und serifen, z. B. Serifen.
FF_SCRIPT Schriftarten, die wie Handschrift aussehen, z. B. Script und Cursive.
FF_SWISS Schriftarten mit variabler Strichbreite (proportional) und ohne Serifen, z. B. Sans Serif.

lfFaceName[32]

Typ: TCHAR[LF_FACESIZE]

Gibt eine NULL-endende Zeichenfolge an, die den Schriftartnamen angibt. Die Länge dieser Zeichenfolge darf 32 Zeichen nicht überschreiten, einschließlich des abschließenden NULL-Zeichens. Die EnumFontFamilies-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.

Hinweise

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 eine Microsoft OpenType-Schriftart mit TrueType-Konturen. Beispielsweise unterstützen die folgenden ClearType-Antialiasing nicht: Type 1-Schriftarten, Postscript-OpenType-Schriftarten ohne TrueType-Gliederungen, Bitmapschriftarten, Vektorschriftarten und Geräteschriftarten.
  • Die Schriftart verfügt über angepasste eingebettete Bitmaps für alle Schriftgrößen, die die eingebetteten Bitmaps enthalten. Dies tritt beispielsweise häufig in ostasiatischen Schriftarten auf.
Diese Struktur erschien zuerst in Shtypes.idl und Shtypes.h in Windows Vista, um die Benutzerfreundlichkeit mit Mitgliedern der IVisualProperties-Schnittstelle zu erleichtern. Die identische Struktur ist jedoch in Wingdi.h und Windows.h in früheren Versionen von Windows definiert.

Hinweis

Der shtypes.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 Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Kopfzeile shtypes.h (include Shtypes.h, Dimm.h)

Weitere Informationen

IVisualProperties::GetFont

IVisualProperties::SetFont