LOGFONTA-Struktur (wingdi.h)
Die LOGFONT-Struktur definiert die Attribute einer Schriftart.
Syntax
typedef struct tagLOGFONTA {
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;
CHAR lfFaceName[LF_FACESIZE];
} LOGFONTA, *PLOGFONTA, *NPLOGFONTA, *LPLOGFONTA;
Member
lfHeight
Die Höhe der Zeichenzelle oder des Zeichens der Schriftart in logischen Einheiten. Der Wert für die Zeichenhöhe (auch als em height bezeichnet) ist der Wert der Zeichenzellenhöhe abzüglich des inneren führenden Werts. Die Schriftartenzuordnung interpretiert den in lfHeight angegebenen Wert wie folgt.
Wert | Bedeutung |
---|---|
> 0 | Die Schriftartenzuordnung transformiert diesen Wert in Geräteeinheiten und gleicht ihn mit der Zellhöhe der verfügbaren Schriftarten ab. |
0 | Die Schriftartenzuordnung verwendet einen Standardhöhenwert, wenn nach einer Übereinstimmung gesucht wird. |
< 0 | Die Schriftartenzuordnung 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 Schriftartenzuordnungser 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 null 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 Escapementvektor 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 Escapement- 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 null ist, wird eine Standardgewichtung verwendet.
Die folgenden Werte werden aus Gründen der Einfachheit 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 formatierte Schriftart, wenn sie auf TRUE festgelegt ist.
lfUnderline
Eine unterstrichene Schriftart, wenn sie auf TRUE festgelegt ist.
lfStrikeOut
Eine durchgestrichene Schriftart, 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
- JOHAB_CHARSET
- ARABIC_CHARSET
- HEBREW_CHARSET
- THAI_CHARSET
DEFAULT_CHARSET wird basierend auf dem aktuellen Systemgebietsschema auf einen Wert festgelegt. Wenn das Systemgebietsschema beispielsweise Englisch (USA) ist, wird es als 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 beim Schriftzuordnungsprozess wichtig. Um konsistente Ergebnisse beim Erstellen einer Schriftart sicherzustellen, geben Sie keine OEM_CHARSET oder DEFAULT_CHARSET 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
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 Schriftartenzuordnung an. |
OUT_DEVICE_PRECIS | Weist den Schriftartenzuordnungser an, eine Geräteschriftart auszuwählen, wenn das System mehrere Schriftarten mit demselben Namen enthält. |
OUT_OUTLINE_PRECIS | Dieser Wert weist die Schriftartenzuordnung an, aus TrueType und anderen gliederungsbasierten Schriftarten auszuwählen. |
OUT_PS_ONLY_PRECIS | Weist die Schriftartenzuordnung 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 den Schriftartenzuordnungser an, eine Rasterschriftart auszuwählen, wenn das System mehrere Schriftarten mit demselben Namen enthält. |
OUT_STRING_PRECIS | Dieser Wert wird von der Schriftartenzuordnung nicht verwendet, aber er wird zurückgegeben, wenn Rasterschriftarten aufgezählt werden. |
OUT_STROKE_PRECIS | Dieser Wert wird von der Schriftartenzuordnung nicht verwendet, aber er wird zurückgegeben, wenn TrueType, andere gliederungsbasierte Schriftarten und Vektorschriftarten aufgezählt werden. |
OUT_TT_ONLY_PRECIS | Weist die Schriftartenzuordnung an, nur trueType-Schriftarten auszuwählen. Wenn keine TrueType-Schriftarten im System installiert sind, kehrt die Schriftartenzuordnung zum Standardverhalten zurück. |
OUT_TT_PRECIS | Weist den Schriftartenzuordnungser 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 Schriftartenzuordnung eine Schriftart auswährt, wenn das Betriebssystem mehrere Schriftarten mit einem angegebenen Namen enthält. Wenn beispielsweise ein Betriebssystem eine Schriftart mit dem Namen Symbol im Raster- und TrueType-Formular enthält, erzwingt die Angabe von OUT_TT_PRECIS, dass die Schriftartzuordnung die TrueType-Version auswäht. Die Angabe OUT_TT_ONLY_PRECIS erzwingt, dass der Schriftartenzuordnungser eine TrueType-Schriftart auswählen muss, auch wenn sie eine TrueType-Schriftart mit einem anderen Namen ersetzen muss.
lfClipPrecision
Die Clippinggenauigkeit. 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.
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-Clippingverhalten an. |
CLIP_DFA_DISABLE | Windows XP SP1: Deaktiviert die Schriftartenzuordnung für die Schriftart. Beachten Sie, dass dieses Flag nach Windows Server 2003 keine Auswirkungen auf eine Plattform 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 sie nicht verwendet werden, 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 Schriftartenzuordnung für die Schriftart. Dies ist identisch mit CLIP_DFA_DISABLE, kann aber in einigen Situationen Probleme haben. Das empfohlene Flag ist CLIP_DFA_DISABLE. |
CLIP_STROKE_PRECIS | Wird nicht vom Schriftartenzuordnungs-Objekt verwendet, wird aber zurückgegeben, wenn Raster-, Vektor- oder TrueType-Schriftarten aufgezählt werden. Aus Kompatibilitätsgründen wird dieser Wert beim Aufzählen von Schriftarten immer zurückgegeben. |
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 ist immer antialiased, 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-Antialiasingmethode gerendert. Weitere Informationen finden Sie unter Hinweise. |
DEFAULT_QUALITY | Die Darstellung 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. Dies bedeutet, dass mehr Schriftgrößen verfügbar sind, aber die Qualität möglicherweise niedriger ist. Fett, kursiv, unterstrichen und durchgestrichene Schriftarten werden bei Bedarf synthetisiert. |
NONANTIALIASED_QUALITY | Schriftart wird nie antialiasiert. |
PROOF_QUALITY | Die Zeichenqualität der Schriftart ist wichtiger als eine exakte Übereinstimmung der Attribute für logische Schriftarten. Bei GDI-Rasterschriftarten ist die Skalierung deaktiviert, und die Schrift wird ausgewählt, die der Größe am nächsten kommt. Obwohl der gewählte Schriftgrad 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 durchgestrichene Schriftarten werden bei Bedarf synthetisiert. |
Wenn weder ANTIALIASED_QUALITY noch NONANTIALIASED_QUALITY ausgewählt ist, wird die Schriftart nur antialiasiert, wenn der Benutzer Schriftarten für den glatten Bildschirm in Systemsteuerung auswählt.
lfPitchAndFamily
Die Tonhöhe und die 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
- FF_DECORATIVE
- FF_DONTCARE
- FF_MODERN
- FF_ROMAN
- FF_SCRIPT
- FF_SWISS
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 | 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 mit 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 des beendenden 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
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 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 angepasste 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 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 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
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 (einschließlich Windows.h) |