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.
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 |