Freigeben über


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;

Elemente

lfHeight

Typ: LONG

Gibt die Höhe der Zeichenzelle oder des Zeichens der Schriftart in logischen Einheiten an. Der Zeichenhöhenwert (auch als Em-Höhe bezeichnet) ist der Wert der Zeichenzellenhöhe minus dem internen vorangestellten Wert. Der Schriftart-Mapper interpretiert den in lfHeight angegebenen Wert wie folgt.

Wert Description
> 0 Der Schriftart-Mapper wandelt diesen Wert in Geräteeinheiten um und stimmt mit der Zellenhöhe der verfügbaren Schriftarten überein.
0 Der Schriftartzuordnungswert verwendet einen Standardhöhenwert, wenn er nach einer Übereinstimmung sucht.
< 0 Der Schriftart-Mapper wandelt diesen Wert in Geräteeinheiten um und gleicht seinen absoluten Wert mit der Zeichenhöhe der verfügbaren Schriftarten ab.
 

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

Diese Zuordnung tritt auf, 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 von Zeichen in der Schriftart an. Wenn lfWidth nicht null ist, wird das Seitenverhältnis des Geräts mit dem Digitalisierungs-Seitenverhä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 zwischen dem Escapevektor und der X-Achse des Geräts in Zehntel grad an. Der Escapezeichenvektor ist parallel zur Basiszeile einer Textzeile.

Das Element "lfEscapement " gibt sowohl das Escapezeichen als auch die Ausrichtung an. Sie sollten "lfEscapement " und "lfOrientation " auf denselben Wert festlegen.

lfOrientation

Typ: LONG

Gibt den Winkel zwischen der Basislinie jedes Zeichens und der X-Achse des Geräts in Zehntel grad an.

lfWeight

Typ: LONG

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

Die folgenden Werte werden in Wingdi.h zur Vereinfachung 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

Typ: BYTE

TRUE , um eine kursiv formatierte Schriftart anzugeben.

lfUnderline

Typ: BYTE

TRUE , um eine unterstrichene Schriftart anzugeben.

lfStrikeOut

Typ: BYTE

TRUE , um eine durchgestrichene Schriftart anzugeben.

lfCharSet

Typ: BYTE

Gibt den Zeichensatz an. Die folgenden Werte sind vordefinierte:

Wert Description
ANSI_CHARSET Diese Schriftart unterstützt den Windows ANSI-Zeichensatz.
ARABIC_CHARSET Diese Schriftart unterstützt den arabischen Zeichensatz.
BALTIC_CHARSET Diese Schriftart unterstützt den Baltischen Zeichensatz.
CHINESEBIG5_CHARSET Diese Schriftart unterstützt den traditionellen chinesischen Zeichensatz (Big 5).
DEFAULT_CHARSET Diese Schriftart unterstützt den Zeichensatzwert basierend auf der standardmäßigen Windows ANSI-Codeseite des Systems. Wenn das Systemgebietsschema beispielsweise Englisch (USA) ist, wird es als ANSI_CHARSET festgelegt.
EASTEUROPE_CHARSET Diese Schriftart unterstützt den osteuropäischen Zeichensatz.
GB2312_CHARSET Diese Schriftart unterstützt den chinesischen Zeichensatz (vereinfacht) (PRC).
GREEK_CHARSET Diese Schriftart unterstützt den griechischen Zeichensatz.
HANGEUL_CHARSET Diese Schriftart unterstützt den Koreanischen Zeichensatz (Hangul).
HEBREW_CHARSET Diese Schriftart unterstützt den hebräischen Zeichensatz.
JOHAB_CHARSET Diese Schriftart unterstützt den Koreanischen Zeichensatz (Johab).
MAC_CHARSET Diese Schriftart unterstützt den Zeichensatzwert basierend auf der aktuellen Macintosh-Codeseite. Dieser Wert wird in erster Linie im Legacycode verwendet und sollte in der Regel nicht benötigt werden, da moderne Macintosh-Computer Unicode für die Codierung verwenden.
OEM_CHARSET Diese Schriftart unterstützt einen OEM-spezifischen Zeichensatz. Der OEM-Zeichensatz ist vom System abhängig.
RUSSIAN_CHARSET Diese Schriftart unterstützt den kyrillischen Zeichensatz.
SHIFTJIS_CHARSET Diese Schriftart unterstützt den Zeichensatz Shift-JIS (Japanese Industry Standard).
SYMBOL_CHARSET Diese Schriftart unterstützt den Windows-Symbolzeichensatz.
THAI_CHARSET Diese Schriftart unterstützt den thailändischen Zeichensatz.
TURKISH_CHARSET Diese Schriftart unterstützt den türkischen Zeichensatz.
VIETNAMESE_CHARSET Diese Schriftart unterstützt den vietnamesischen Zeichensatz.

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

Dieses Element ist im Schriftartenzuordnungsprozess wichtig. Um konsistente Ergebnisse sicherzustellen, geben Sie einen bestimmten Zeichensatz an. Wenn Sie einen Schriftartnamen im Element "lfFaceName " angeben, stellen Sie sicher, dass der lfCharSet-Wert dem Zeichensatz der in lfFaceName angegebenen Schriftart entspricht.

lfOutPrecision

Typ: BYTE

Gibt die Ausgabegenauigkeit an. Die Ausgabegenauigkeit definiert, wie genau die Ausgabe mit der Höhe, Breite, Zeichenausrichtung, Escapezeichen, Pitch und Schriftarttyp der angeforderten Schriftart übereinstimmen muss. Es kann sich um einen der folgenden Werte handeln, die in Wingdi.h definiert sind:

Wert Description
OUT_DEFAULT_PRECIS Gibt das Standardverhalten des Schriftartenzuordnungsverhaltens an.
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, wird jedoch zurückgegeben, wenn Rasterschriftarten aufgezählt werden.

lfClipPrecision

Typ: BYTE

Gibt die Beschneidungsgenauigkeit an. Die Beschneidungsgenauigkeit definiert, wie Zeichen abgeschnitten werden, die sich teilweise außerhalb des Beschneidungsbereichs befinden. Es kann sich um einen oder mehrere der folgenden Werte handeln, die in Wingdi.h definiert sind:

Wert Description
CLIP_DEFAULT_PRECIS Gibt das Standardmäßige Beschneidungsverhalten an.
CLIP_CHARACTER_PRECIS Wird nicht verwendet.
CLIP_STROKE_PRECIS Wird nicht vom Schriftarten-Mapper verwendet, sondern 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 der logischen Schriftart mit denen einer tatsächlichen physischen Schriftart abzugleichen. Es kann sich um einen der folgenden Werte handeln, die in Wingdi.h definiert sind:

Wert Description
ANTIALIASED_QUALITY Aktiviert antialiasing für die Schriftart. Der Anzeigetreiber muss antialiasierten 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 mit demselben Abstand wie Nicht-ClearType-Text.
CLEARTYPE_QUALITY Aktiviert ClearType-Text für die Schriftart. Der Anzeigetreiber muss ClearType-Text unterstützen, damit diese Einstellung funktioniert.
DEFAULT_QUALITY Das Erscheinungsbild der Schriftart spielt keine Rolle.
DRAFT_QUALITY Bei GDI-Rasterschriftarten ist die Skalierung aktiviert, was bedeutet, dass mehr Schriftgrade verfügbar sind, die Qualität kann jedoch niedriger sein. Fett, kursiv, unterstrichen und durchgestrichene Schriftarten werden bei Bedarf synthetisiert.

lfPitchAndFamily

Typ: BYTE

Gibt den Schriftgrad und die Gruppe der Schriftart an. Die beiden Bits in niedriger Reihenfolge geben den Schriftgrad an und können eine der folgenden Werte sein, die in Wingdi.h definiert sind:

  • DEFAULT_PITCH
  • FIXED_PITCH
  • MONO_FONT
  • VARIABLE_PITCH
Bits 4 bis 7 des Mitglieds geben die Schriftartgruppe an und können eine 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 Neigungskonstante mit einer Familienkonstante zu verbinden.

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

Wert Description
FF_DECORATIVE Neuheitsschriftarten, z. B. Old English.
FF_DONTCARE Keine Sorge oder wissen Sie 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 mit Serifen, z. B. Serif.
FF_SCRIPT Schriftarten, die wie Handschrift aussehen sollen, z. B. "Skript" und "Cursive".
FF_SWISS Schriftarten mit variabler Strichbreite (proportional) und ohne Serifen, z. B. Sans Serif.

lfFaceName[32]

Typ: TCHAR[LF_FACESIZE]

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

Bemerkungen

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

  • Text wird auf einem Drucker gerendert.
  • Anzeigesatz für 256 Farben oder weniger.
  • Text wird auf einem Terminalserverclient gerendert.
  • Die Schriftart ist keine TrueType-Schriftart oder eine Microsoft OpenType-Schriftart mit TrueType-Gliederungen. Beispielsweise wird die ClearType-Antialiasing nicht unterstützt: Typ 1 Schriftarten, Postscript OpenType-Schriftarten ohne TrueType-Gliederungen, Bitmapschriftarten, Vektorschriftarten und Geräteschriftarten.
  • Die Schriftart verfügt über eingebettete Bitmaps für alle Schriftgrade, 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 automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias 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

Anforderung Wert
Mindestens unterstützter Client Windows Vista [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2008 [Nur Desktop-Apps]
Header shtypes.h (include Shtypes.h, Dimm.h)

Siehe auch

IVisualProperties::GetFont

IVisualProperties::SetFont