Freigeben über


ScriptPositionSingleGlyph-Funktion (usp10.h)

Positioniert eine einzelne Glyphe mit einer einzelnen Anpassung mithilfe eines angegebenen Features, das in der Schriftart für die OpenType-Verarbeitung bereitgestellt wird. In den meisten Fällen verwenden Anwendungen diese Funktion, um eine Glyphe optisch am Anfang oder Ende einer Linie auszurichten.

Syntax

HRESULT ScriptPositionSingleGlyph(
  [in, optional] HDC             hdc,
  [in, out]      SCRIPT_CACHE    *psc,
  [in, optional] SCRIPT_ANALYSIS *psa,
  [in]           OPENTYPE_TAG    tagScript,
  [in]           OPENTYPE_TAG    tagLangSys,
  [in]           OPENTYPE_TAG    tagFeature,
  [in]           LONG            lParameter,
  [in]           WORD            wGlyphId,
  [in]           int             iAdvance,
  [in]           GOFFSET         GOffset,
  [out]          int             *piOutAdvance,
  [out]          GOFFSET         *pOutGoffset
);

Parameter

[in, optional] hdc

Handle für den Gerätekontext. Weitere Informationen finden Sie unter Zwischenspeichern.

[in, out] psc

Zeiger auf eine SCRIPT_CACHE Struktur, die den Skriptcache identifiziert.

[in, optional] psa

Zeiger auf eine SCRIPT_ANALYSIS-Struktur, die aus einem vorherigen Aufruf von ScriptItemizeOpenType abgerufen wurde. Diese Struktur identifiziert die Strukturierungs-Engine, sodass die Vorlaufbreiten abgerufen werden können.

Alternativ kann die Anwendung diesen Parameter auf NULL festlegen, um ungefilterte Ergebnisse abzurufen.

[in] tagScript

Eine OPENTYPE_TAG Struktur, die das Skripttag für die Strukturierung definiert.

[in] tagLangSys

Eine OPENTYPE_TAG Struktur, die das Sprachtag für die Strukturierung definiert.

[in] tagFeature

Eine OPENTYPE_TAG Struktur, die das Featuretag definiert, das zum Strukturieren der alternativen Glyphe verwendet werden soll.

[in] lParameter

Ein Flag, das angibt, ob eine einzelne Ersetzung auf den in wGlyphId angegebenen Bezeichner angewendet werden soll. Die Anwendung legt diesen Parameter auf 1 fest, um die einzelne Ersetzungsfunktion auf den Bezeichner anzuwenden. Die Anwendung legt den Parameter auf 0 fest, wenn die Funktion das Feature nicht anwenden soll.

[in] wGlyphId

Der Bezeichner der ursprünglichen Glyphe, die geformt wird.

[in] iAdvance

Die breite der ursprünglichen Glyphe.

[in] GOffset

Der ursprüngliche Glyphenoffset. In der Regel ist dieser Wert eine Ausgabe von ScriptPlaceOpenType oder ScriptPlace.

[out] piOutAdvance

Zeiger auf die Position, an der diese Funktion die neue erweiterte Breite abruft, die für die alternative Glyphe angepasst wurde.

[out] pOutGoffset

Zeiger auf die Position, an der diese Funktion den neuen Glyphenoffset abruft, der für die alternative Glyphe angepasst wurde.

Rückgabewert

Gibt bei Erfolg 0 zurück. Die Funktion gibt einen HRESULT-Wert ungleich null zurück, wenn sie nicht erfolgreich ist. Die Anwendung kann den Rückgabewert mit den Makros SUCCEEDED und FAILED testen.

Hinweise

Diese Funktion positioniert eine einzelne Glyphe, indem sie die Vorlaufbreite und/oder den Offset der angegebenen Glyphe anpasst. Die Funktion geht davon aus, dass die Schriftart nur eine Anpassung erfordert.

Eine typische Verwendung dieser Funktion ist die leichte Anpassung des Rands, um dem visuellen Eindruck bestimmter Zeichen Rechnung zu tragen. In der lateinischen Schrift ist es beispielsweise üblich, am Anfang einer Zeile eine geringfügige Anpassung nach links für ein Anfangsbuchstaben (z. B. "T" oder "O") vorzunehmen, das keine vertikale Linie am linken Teil der Glyphe aufweist. Obwohl dies den strengen linearen Rand durchbricht, nimmt das Auge den Rand als gleichmäßiger wahr.

Die folgenden Beispiele veranschaulichen diesen Effekt. Das erste Beispiel zeigt eine strikte Ausrichtung; die nächsten beiden Beispiele zeigen eine Anpassung des anfänglichen "T" nach links. Die Anpassungen erfolgen um jeweils ein Pixel bzw. zwei Pixel. Die vergrößerten Bilder rechts zeigen, wie das "T" in jedem aufeinanderfolgenden Fall etwas weiter in den linken Rand geschoben wird.

Abbildung, die dreimal denselben Textblock zeigt, wobei die Vergrößerungen jeweils eine leicht unterschiedliche Ausrichtung aufweisen
Wichtig Ab Windows 8: Um die Ausführung unter Windows 7 zu gewährleisten, muss ein Modul, das Uniscribe verwendet, Usp10.lib vor gdi32.lib in der Bibliotheksliste angeben.
 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile usp10.h
Bibliothek Usp10.lib
DLL Usp10.dll
Verteilbare Komponente Usp10.dll Version 1.600 oder höher unter Windows XP

Weitere Informationen

Zwischenspeichern

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

ScriptItemizeOpenType

Uniscribe

Uniscribe-Funktionen