Freigeben über


GetGlyphOutlineW-Funktion (wingdi.h)

Die GetGlyphOutline--Funktion ruft die Gliederung oder Bitmap für ein Zeichen in der TrueType-Schriftart ab, die im angegebenen Gerätekontext ausgewählt ist.

Syntax

DWORD GetGlyphOutlineW(
  [in]  HDC            hdc,
  [in]  UINT           uChar,
  [in]  UINT           fuFormat,
  [out] LPGLYPHMETRICS lpgm,
  [in]  DWORD          cjBuffer,
  [out] LPVOID         pvBuffer,
  [in]  const MAT2     *lpmat2
);

Parameter

[in] hdc

Ein Handle für den Gerätekontext.

[in] uChar

Das Zeichen, für das Daten zurückgegeben werden sollen.

[in] fuFormat

Das Format der Daten, die von der Funktion abgerufen werden. Dieser Parameter kann einer der folgenden Werte sein:

Wert Bedeutung
GGO_BEZIER
Die Funktion ruft die Kurvendaten als kubische Bézier-Spline ab (nicht im quadratischen Splineformat).
GGO_BITMAP
Die Funktion ruft die Glyphenbitmap ab. Informationen zur Speicherzuweisung finden Sie im folgenden Abschnitt "Hinweise".
GGO_GLYPH_INDEX
Gibt an, dass der parameter uChar ein TrueType Glyph Index anstelle eines Zeichencodes ist. Weitere Hinweise zur Glyphenindizierung finden Sie in der ExtTextOut--Funktion.
GGO_GRAY2_BITMAP
Die Funktion ruft eine Glyphenbitmap ab, die fünf Grauebenen enthält.
GGO_GRAY4_BITMAP
Die Funktion ruft eine Glyphenbitmap ab, die 17 Graustufen enthält.
GGO_GRAY8_BITMAP
Die Funktion ruft eine Glyphenbitmap ab, die 65 Graustufen enthält.
GGO_METRICS
Die Funktion ruft nur die GLYPHMETRICS- Struktur ab, die durch lpgm-angegeben wird. Die lpvBuffer- wird ignoriert. Dieser Wert wirkt sich auf die Bedeutung des Rückgabewerts der Funktion beim Fehler aus; siehe Abschnitt "Rückgabewerte".
GGO_NATIVE
Die Funktion ruft die Kurvendatenpunkte im systemeigenen Format des Rasterizers ab und verwendet die Designeinheiten der Schriftart.
GGO_UNHINTED
Die Funktion gibt nur nicht enthaltene Gliederungen zurück. Dieses Kennzeichen funktioniert nur in Verbindung mit GGO_BEZIER und GGO_NATIVE.
 

Beachten Sie, dass die Funktion für die GGO_GRAYn_BITMAP Werte eine Glyphenbitmap abruft, die n^2+1 (n quadratisch plus eins) Grauebenen enthält.

[out] lpgm

Ein Zeiger auf die GLYPHMETRICS Struktur, die die Platzierung der Glyphe in der Zeichenzelle beschreibt.

[in] cjBuffer

Die Größe des Puffers in Bytes (*lpvBuffer), wobei die Funktion Informationen zum Gliederungszeichen kopieren soll. Wenn dieser Wert null ist, gibt die Funktion die erforderliche Größe des Puffers zurück.

[out] pvBuffer

Ein Zeiger auf den Puffer, der Informationen zum Gliederungszeichen empfängt. Wenn dieser Wert NULL-ist, gibt die Funktion die erforderliche Größe des Puffers zurück.

[in] lpmat2

Ein Zeiger auf eine MAT2- Struktur, die eine Transformationsmatrix für das Zeichen angibt.

Rückgabewert

Wenn GGO_BITMAP, GGO_GRAY2_BITMAP, GGO_GRAY4_BITMAP, GGO_GRAY8_BITMAP oder GGO_NATIVE angegeben wird und die Funktion erfolgreich ausgeführt wird, ist der Rückgabewert größer als Null; andernfalls ist der Rückgabewert GDI_ERROR. Wenn eines dieser Flags angegeben ist und die Puffergröße oder -adresse null ist, gibt der Rückgabewert die erforderliche Puffergröße in Bytes an.

Wenn GGO_METRICS angegeben ist und die Funktion fehlschlägt, wird der Rückgabewert GDI_ERROR.

Bemerkungen

Die Glyphenkontur, die von der GetGlyphOutline--Funktion zurückgegeben wird, ist für eine rastergepasste Glyphe vorgesehen. (Eine rastergepasste Glyphe ist eine Glyphe, die so geändert wurde, dass das Bitmapbild dem ursprünglichen Entwurf der Glyphe so genau wie möglich entspricht.) Wenn eine Anwendung eine unmodifizierte Glyphenkontur benötigt, kann sie die Glyphenkontur für ein Zeichen in einer Schriftart anfordern, deren Schriftgrad der Em-Einheit entspricht. Der Wert für die Em-Einheit einer Schriftart wird im otmEMSquare Member der OUTLINETEXTMETRIC- Struktur gespeichert.

Die Glyphenbitmap, die von GetGlyphOutline- zurückgegeben wird, wenn GGO_BITMAP angegeben wird, ist eine DWORD-ausgerichtete, zeilenorientierte, monochrome Bitmap. Wenn GGO_GRAY2_BITMAP angegeben wird, ist die zurückgegebene Bitmap ein DWORD-ausgerichtetes, zeilenorientiertes Array von Bytes, deren Werte zwischen 0 und 4 liegen. Wenn GGO_GRAY4_BITMAP angegeben wird, ist die zurückgegebene Bitmap ein DWORD-ausgerichtetes, zeilenorientiertes Bytearray, dessen Werte zwischen 0 und 16 liegen. Wenn GGO_GRAY8_BITMAP angegeben wird, ist die zurückgegebene Bitmap ein DWORD-ausgerichtetes, zeilenorientiertes Array von Bytes, deren Werte zwischen 0 und 64 liegen.

Der systemeigene Puffer, der von GetGlyphOutline- zurückgegeben wird, wenn GGO_NATIVE angegeben wird, ist eine Glyphenkontur. Eine Glyphe wird als Eine Reihe von einer oder mehreren Konturen zurückgegeben, die durch eine TTPOLYGONHEADER- Struktur gefolgt von einer oder mehreren Kurven definiert werden. Jede Kurve in der Kontur wird durch eine TTPOLYCURVE- Struktur definiert, gefolgt von einer Reihe von POINTFX- Datenpunkten. POINTFX Punkte absolute Positionen und keine relativen Verschiebungen sind. Der Ausgangspunkt einer Kontur wird durch das pfxStart- Mitglied der TTPOLYGONHEADER Struktur angegeben. Der Ausgangspunkt jeder Kurve ist der letzte Punkt der vorherigen Kurve oder der Ausgangspunkt der Kontur. Die Anzahl der Datenpunkte in einer Kurve wird im cpfx Member TTPOLYCURVE Struktur gespeichert. Die Größe der einzelnen Konturen im Puffer in Byte wird im cb Member TTPOLYGONHEADER Struktur gespeichert. Zusätzliche Kurvendefinitionen werden nach vorhergehenden Kurven in den Puffer gepackt, und zusätzliche Konturen werden nach vorherigen Konturen in den Puffer gepackt. Der Puffer enthält so viele Konturen wie in den Puffer, der von GetGlyphOutline-zurückgegeben wird.

Die GLYPHMETRICS- Struktur gibt die Breite der Zeichenzelle und die Position einer Glyphe innerhalb der Zeichenzelle an. Der Ursprung der Zeichenzelle befindet sich auf der linken Seite der Zelle am Basisplan der Schriftart. Die Position des Glyphenursprungs ist relativ zum Ursprung der Zeichenzelle. Die Höhe einer Zeichenzelle, der Basisplan und anderer Metriken, die global für die Schriftart sind, werden durch die OUTLINETEXTMETRIC Struktur angegeben.

Eine Anwendung kann die in Bitmap oder systemeigenen Format abgerufenen Zeichen ändern, indem sie eine 2:2-Transformationsmatrix im lpMatrix--Parameter angeben. Die Glyphe kann z. B. durch Scheren, Drehung, Skalierung oder eine beliebige Kombination der drei mithilfe der Matrixmultiplizierung geändert werden.

Weitere Informationen zu Glyphenkonturen finden Sie in den technischen Spezifikationen von TrueType und OpenType.

Anmerkung

Der wingdi.h-Header definiert GetGlyphOutline als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch 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 [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- wingdi.h (enthalten Windows.h)
Library Gdi32.lib
DLL- Gdi32.dll

Siehe auch

ExtTextOut-

FORM_INFO_1

Schriftart- und Textfunktionen

Schriftarten und Textübersicht

GLYPHMETRICS-

GetOutlineTextMetrics-

MAT2-

OUTLINETEXTMETRIC-

POINT-

POINTFX-

TTPOLYCURVE

TTPOLYGONHEADER-