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
- FF_DECORATIVE
- FF_DONTCARE
- FF_MODERN
- FF_ROMAN
- FF_SCRIPT
- FF_SWISS
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.
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) |