LOGFONTW-Struktur (dimm.h)

Definiert die Attribute einer Schriftart.

Syntax

typedef struct __MIDL___MIDL_itf_dimm_0000_0000_0004 {
  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 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 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 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 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.

Dieses Element ist bei der Schriftzuordnung wichtig. Um konsistente Ergebnisse zu gewährleisten, geben Sie einen bestimmten Zeichensatz 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

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. Es kann sich um einen der folgenden Werte handeln, die in Wingdi.h definiert sind:

Wert Beschreibung
OUT_DEFAULT_PRECIS Gibt das Standardverhalten der Schriftartzuordnung 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, aber er wird zurückgegeben, wenn Rasterschriftarten aufgelistet werden.

lfClipPrecision

Typ: BYTE

Gibt die Genauigkeit für das Ausschneiden an. 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, die in Wingdi.h definiert sind:

Wert Beschreibung
CLIP_DEFAULT_PRECIS Gibt das Standard-Abschneideverhalten an.
CLIP_CHARACTER_PRECIS Nicht verwendet.
CLIP_STROKE_PRECIS Wird nicht vom Schriftartzuordnungs-Objekt verwendet, sondern wird zurückgegeben, wenn Raster-, Vektor- oder TrueType-Schriftarten aufgelistet 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. Es kann sich um einen der folgenden Werte handeln, die in Wingdi.h definiert sind:

Wert Beschreibung
ANTIALIASED_QUALITY Aktiviert antialiasing für die Schriftart. Der Anzeigetreiber muss antialiasierten Text unterstützen, damit diese Einstellung funktioniert.
NONANTIALIASED_QUALITY Erzwingt die Verwendung von 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 denselben 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 Das Aussehen der Schriftart spielt keine Rolle.
DRAFT_QUALITY Für GDI-Rasterschriftarten ist die Skalierung aktiviert, was bedeutet, dass mehr Schriftgrößen verfügbar sind, die Qualität jedoch möglicherweise geringer ist. Fett-, Kursiv-, Unterstrichen- und Streichschriftarten werden bei Bedarf synthetisiert.

lfPitchAndFamily

Typ: BYTE

Gibt die Tonhöhe und Gruppe der Schriftart an. Die zwei 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 Elements 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 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 Beschreibung
FF_DECORATIVE Neue Schriftarten, z. B. Altenglisch.
FF_DONTCARE 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 mit Serifen, z. B. Serifen.
FF_SCRIPT Schriftarten, die wie Handschrift aussehen, 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 NULL-beendete Zeichenfolge an, die den Schriftartnamen der Schriftart angibt. Die Länge dieser Zeichenfolge darf 32 Zeichen nicht überschreiten, einschließlich des endenden 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.

Bemerkungen

Die folgenden Situationen unterstützen das ClearType-Antialiasing nicht:

  • Text wird auf einem Drucker gerendert.
  • Anzeige für 256 Farben oder weniger festgelegt.
  • Text wird auf einem Terminalserverclient gerendert.
  • Die Schriftart ist keine TrueType-Schriftart oder eine Microsoft OpenType-Schriftart mit TrueType-Gliederungen. Die folgenden Unterstützen beispielsweise die ClearType-Antialiasing nicht: Typ 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.
Diese Struktur erschien zuerst in Shtypes.idl und Shtypes.h in Windows Vista, um die Verwendung mit Mitgliedern der IVisualProperties-Schnittstelle zu vereinfachen. Die identische Struktur ist jedoch in "Wingdi.h" und "Windows.h" in früheren Versionen von Windows definiert.

Anforderungen

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

Siehe auch

IVisualProperties::GetFont

IVisualProperties::SetFont