Freigeben über


ScriptJustify-Funktion (usp10.h)

Erstellt eine Tabelle mit erweiterten Breiten, um eine Textbegründung zuzulassen, wenn sie an die ScriptTextOut-Funktion übergeben wird.

Syntax

HRESULT ScriptJustify(
  [in]  const SCRIPT_VISATTR *psva,
  [in]  const int            *piAdvance,
  [in]  int                  cGlyphs,
  [in]  int                  iDx,
  [in]  int                  iMinKashida,
  [out] int                  *piJustify
);

Parameter

[in] psva

Zeiger auf ein Array, das von cGlyphen angegeben wird und SCRIPT_VISATTR Strukturen enthält. Jede Struktur enthält visuelle Attribute für eine Glyphe in der zu verarbeitenden Zeile.

[in] piAdvance

Zeiger auf ein Array mit erweiterten Breiten mit der Länge, die durch cGlyphen angegeben wird und aus einem vorherigen Aufruf von ScriptPlace abgerufen wurde.

[in] cGlyphs

Anzahl der Glyphen für die Von psva und piAdvance angegebenen Arrays. Dieser Parameter gibt auch die Anzahl der Glyphen für den Ausgabeparameter piJustify an.

[in] iDx

Breite, in Pixel, der gewünschten Änderung, entweder eine Erhöhung der Abnahme.

[in] iMinKashida

Mindestbreite einer zu generierenden Kashida-Glyphe.

[out] piJustify

Zeiger auf einen Puffer, in dem diese Funktion ein Von cGlyphen angegebenes Array abruft, das gerechtfertigte Vorschubbreiten enthält. Die gerechtfertigten Breiten werden manchmal als "Zellbreiten" bezeichnet, um sie von ungerechtfertigten Vorlaufbreiten zu unterscheiden.

Rückgabewert

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

Hinweise

Eine Diskussion über den Kontext, in dem diese Funktion normalerweise aufgerufen wird, finden Sie unter Anzeigen von Text mit Uniscribe .

Diese Funktion bietet eine einfache Implementierung mehrsprachiger Begründungen. Er legt den Umfang der Anpassung fest, die an jeder Glyphenposition auf der Linie vorgenommen werden soll. Es interpretiert das SCRIPT_VISATTR Array, das durch einen Aufruf von ScriptShape generiert wird, wobei kashida höchste Priorität eingeräumt wird. Die Funktion verwendet den Zwischenwortabstand, wenn keine Kashida-Punkte verfügbar sind. Es verwendet Interzeichenabstand, wenn keine Interwortwortpunkte verfügbar sind.

Hinweis Anspruchsvolle Textformatierer können ihr eigenes Delta DX-Array generieren, indem sie formatterspezifische Features mit den von ScriptShape abgerufenen Informationen im SCRIPT_VISATTR-Array kombinieren.
 
Die Anwendung sollte die von ScriptJustify generierten gerechtfertigten Voranschreibbreiten im piJustify-Parameter an ScriptTextOut übergeben.

ScriptJustify erstellt ein berechtigtes Array mit aktualisierten Erweiterten Breiten für jede Glyphe. Wenn eine Vorschubbreite für eine Glyphe erhöht wird, wird die zusätzliche Breite rechts von der Glyphe gerendert, mit einem Leerzeichen oder, für arabischen Text, einer Kashida.

Hinweis Kashida-Einfügung erfolgt rechts neben der Glyphe, um visuell zu rechtfertigen. Microsoft Word und Microsoft PowerPoint verwenden dieses Konzept. Jede Änderung am Kashida-Platzierungsalgorithmus sollte eine Änderung des entsprechenden ScriptTextOut-Handlers für ein bestimmtes Skript begleiten, z. B. im Arabischen TextOut-Begründungshandler.
 
Manchmal versucht die Anwendung, Glyphen zu behandeln, die nicht gerechtfertigt werden können. In diesem Fall wird der uJustification-Member von SCRIPT_VISATTR auf SCRIPT_JUSTIFY_NONE festgelegt. In diesem Fall kopiert ScriptJustify das von piAdvance angegebene Eingabearray in das Ausgabearray, das von piJustify angegeben wird, und gibt S_FALSE an die Anwendung zurück.
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 seiner Bibliotheksliste angeben.
 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile usp10.h
Bibliothek Usp10.lib
DLL Usp10.dll
Verteilbare Komponente Internet Explorer 5 oder höher unter Windows Me/98/95

Weitere Informationen

Anzeigen von Text mit Uniscribe

SCRIPT_VISATTR

ScriptPlace

ScriptShape

ScriptTextOut

Uniscribe

Uniscribe Functions