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;
Angehörige
lfHeight
Die Höhe in logischen Einheiten der Zeichenzelle oder des Zeichens der Schriftart. Der Zeichenhöhenwert (auch als Em-Höhe bezeichnet) ist der Wert der Zeichenzellenhöhe minus dem internen vorangestellten Wert. Die Schriftartzuordnung interpretiert den in lfHeight- angegebenen Wert wie folgt.
Wert | Bedeutung |
---|---|
> 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 angegebenen Punktgröße anzugeben:
lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);
lfWidth
Die durchschnittliche Breite in logischen Einheiten von Zeichen in der Schriftart. Wenn lfWidth null ist, wird das Seitenverhältnis des Geräts mit dem Digitalisierungs-Seitenverhältnis der verfügbaren Schriftarten abgeglichen, um die nächste Übereinstimmung zu finden, bestimmt durch den absoluten Wert des Unterschieds.
lfEscapement
Der Winkel in Zehntel grad zwischen dem Escapementvektor und der X-Achse des Geräts. Der Escapezeichenvektor ist parallel zur Basiszeile einer Textzeile.
Wenn der Grafikmodus auf GM_ADVANCED festgelegt ist, können Sie den Escapewinkel der Zeichenfolge unabhängig vom Ausrichtungswinkel der Zeichenfolgenzeichen angeben.
Wenn der Grafikmodus auf GM_COMPATIBLE festgelegt ist, gibt lfEscapement- sowohl die Escape- als auch die Ausrichtung an. Sie sollten lfEscapement- und lfOrientation- auf denselben Wert festlegen.
lfOrientation
Der Winkel zwischen der Basislinie jedes Zeichens und der X-Achse des Geräts in zehntel Grad.
lfWeight
Die Stärke der Schriftart im Bereich 0 bis 1000. Beispielsweise ist 400 normal und 700 fett formatiert. Wenn dieser Wert null ist, wird eine Standardgewichtung verwendet.
Die folgenden Werte werden zur Vereinfachung definiert.
Wert | Gewicht |
---|---|
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 TRUEfestgelegt ist.
lfUnderline
Eine unterstrichene Schriftart, wenn sie auf TRUEfestgelegt ist.
lfStrikeOut
Eine durchgestrichene Schriftart, wenn sie auf TRUE-festgelegt ist.
lfCharSet
Der Zeichensatz. Die folgenden Werte sind vordefinierte:
- 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 auf einen Wert festgelegt, der auf dem aktuellen Systemgebietsschema basiert. 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 nicht versucht werden, Zeichenfolgen zu übersetzen oder zu interpretieren, die mit dieser Schriftart gerendert werden.
Dieser Parameter ist im Schriftartenzuordnungsprozess wichtig. Wenn Sie beim Erstellen einer Schriftart konsistente Ergebnisse sicherstellen möchten, geben Sie nicht OEM_CHARSET oder DEFAULT_CHARSET an. Wenn Sie einen Schriftartnamen im lfFaceName Member angeben, stellen Sie sicher, dass der lfCharSet- wert mit dem Zeichensatz der Schriftart übereinstimmt, die in lfFaceNameangegeben ist.
lfOutPrecision
Die Ausgabegenauigkeit. Die Ausgabegenauigkeit definiert, wie genau die Ausgabe mit der Höhe, Breite, Zeichenausrichtung, Escapezeichen, Pitch und Schriftarttyp der angeforderten Schriftart übereinstimmen muss. Dabei kann es sich um einen der folgenden Werte handeln.
Wert | Bedeutung |
---|---|
OUT_CHARACTER_PRECIS | Wird nicht verwendet. |
OUT_DEFAULT_PRECIS | Gibt das Standardverhalten des Schriftartenzuordnungsverhaltens an. |
OUT_DEVICE_PRECIS | Weist die Schriftartzuordnung an, eine Geräteschriftart auszuwählen, wenn das System mehrere Schriftarten mit demselben Namen enthält. |
OUT_OUTLINE_PRECIS | Dieser Wert weist die Schriftartzuordnung an, aus TrueType und anderen gliederungsbasierten Schriftarten auszuwählen. |
OUT_PS_ONLY_PRECIS | Weist die Schriftartzuordnung an, nur aus PostScript-Schriftarten auszuwählen. Wenn im System keine PostScript-Schriftarten installiert sind, wird die Schriftartzuordnung auf das Standardverhalten zurückgesetzt. |
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. |
OUT_STROKE_PRECIS | Dieser Wert wird nicht von der Schriftartzuordnung verwendet, wird jedoch zurückgegeben, wenn TrueType, andere gliederungsbasierte Schriftarten und Vektorschriftarten aufgezählt werden. |
OUT_TT_ONLY_PRECIS | Weist die Schriftartzuordnung an, nur aus TrueType-Schriftarten auszuwählen. Wenn im System keine TrueType-Schriftarten installiert sind, wird die Schriftartzuordnung auf das Standardverhalten zurückgesetzt. |
OUT_TT_PRECIS | Weist die Schriftartzuordnung 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 Schriftartzuordnung eine Schriftart auswährt, wenn das Betriebssystem mehrere Schriftarten mit einem angegebenen Namen enthält. Wenn z. B. ein Betriebssystem eine Schriftart mit dem Namen "Symbol" im Raster- und TrueType-Format enthält, erzwingt die Angabe OUT_TT_PRECIS erzwingt die Schriftartzuordnung, die TrueType-Version auszuwählen. Wenn Sie OUT_TT_ONLY_PRECIS angeben, wird die Schriftartzuordnung gezwungen, eine TrueType-Schriftart auszuwählen, auch wenn sie eine TrueType-Schriftart eines anderen Namens ersetzen muss.
lfClipPrecision
Die Beschneidungsgenauigkeit. Die Beschneidungsgenauigkeit definiert, wie Zeichen abgeschnitten werden, die sich teilweise außerhalb des Beschneidungsbereichs befinden. Dabei kann es sich um einen oder mehrere der folgenden Werte handeln.
Weitere Informationen zur Ausrichtung von Koordinatensystemen finden Sie in der Beschreibung des parameters nOrientation.
Wert | Bedeutung |
---|---|
CLIP_CHARACTER_PRECIS | Wird nicht verwendet. |
CLIP_DEFAULT_PRECIS | Gibt das Standardmäßige Beschneidungsverhalten an. |
CLIP_DFA_DISABLE | Windows XP SP1: Deaktiviert die Schriftartzuordnung für die Schriftart. Beachten Sie, dass diese Kennzeichnung nach Windows Server 2003 keine Auswirkungen auf jede Plattform hat. |
CLIP_EMBEDDED | Sie müssen dieses Kennzeichen 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 linkshändig oder rechtshändig ist. Wenn nicht verwendet, 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 Schriftartzuordnung für die Schriftart. Dies ist identisch mit CLIP_DFA_DISABLE, kann aber in manchen Situationen Probleme haben; die empfohlene Kennzeichnung ist CLIP_DFA_DISABLE. |
CLIP_STROKE_PRECIS | Wird nicht vom Schriftarten-Mapper verwendet, sondern zurückgegeben, wenn Raster-, Vektor- oder TrueType-Schriftarten aufgezählt werden. Aus Gründen der Kompatibilität 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 (Graphics Device Interface, GDI) versuchen muss, die Attribute der logischen Schriftart mit denen einer tatsächlichen physischen Schriftart abzugleichen. Dabei kann es sich um einen der folgenden Werte handeln.
Wert | Bedeutung |
---|---|
ANTIALIASED_QUALITY | Die Schriftart ist immer antialiasiert, wenn die Schriftart sie unterstützt und der Schriftgrad nicht zu klein oder zu groß ist. |
CLEARTYPE_QUALITY | Wenn festgelegt, wird Text (sofern möglich) mithilfe der ClearType-Antialiasing-Methode gerendert. Weitere Informationen finden Sie in den Hinweisen. |
DEFAULT_QUALITY | Das Erscheinungsbild der Schriftart spielt keine Rolle. |
DRAFT_QUALITY | Die Darstellung der Schriftart ist weniger wichtig, als wenn PROOF_QUALITY verwendet wird. 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. |
NONANTIALIASED_QUALITY | Schriftart wird nie antialiasiert. |
PROOF_QUALITY | Die Zeichenqualität der Schriftart ist wichtiger als der genaue Abgleich der Attribute der logischen Schriftart. Bei GDI-Rasterschriftarten ist die Skalierung deaktiviert, und die Schrift, die dem Schriftgrad am nächsten kommt, wird ausgewählt. 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 des Erscheinungsbilds. 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 in der Systemsteuerung glatte Bildschirmschriftarten auswählt.
lfPitchAndFamily
Der Pitch und die Familie der Schriftart. Die beiden Bits mit niedriger Reihenfolge geben den Schriftgrad an und können einen der folgenden Werte aufweisen.
- DEFAULT_PITCH
- FIXED_PITCH
- VARIABLE_PITCH
- FF_DECORATIVE
- FF_DONTCARE
- FF_MODERN
- FF_ROMAN
- FF_SCRIPT
- FF_SWISS
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 | Bedeutung |
---|---|
FF_DECORATIVE | Neuheitsschriftarten. Altes Englisch ist ein Beispiel. |
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. MS Serif ist ein Beispiel. |
FF_SCRIPT | Schriftarten, die so konzipiert sind, dass sie wie handschriftlich aussehen. Skript und Cursive sind Beispiele. |
FF_SWISS | Schriftarten mit variabler Strichbreite (proportional) und ohne Serifen. MS Sans Serif ist ein Beispiel. |
lfFaceName[LF_FACESIZE]
Eine mit Null beendete Zeichenfolge, die den Schriftartnamen angibt. Die Länge dieser Zeichenfolge darf 32 TCHAR--Werte, einschließlich der endierenden NULL-, nicht überschreiten. Die funktion EnumFontFamiliesEx 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 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.
Anmerkung
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 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ützte Client- | Windows 2000 Professional [Desktop-Apps | UWP-Apps] |
mindestens unterstützte Server- | Windows 2000 Server [Desktop-Apps | UWP-Apps] |
Header- | wingdi.h (enthalten Windows.h) |