ScriptTextOut-Funktion (usp10.h)

Zeigt Text für die angegebene Skriptform an und platziert Informationen.

Syntax

HRESULT ScriptTextOut(
  [in]           const HDC             hdc,
  [in, out]      SCRIPT_CACHE          *psc,
  [in]           int                   x,
  [in]           int                   y,
  [in]           UINT                  fuOptions,
  [in, optional] const RECT            *lprc,
  [in]           const SCRIPT_ANALYSIS *psa,
  [in]           const WCHAR           *pwcReserved,
  [in]           int                   iReserved,
  [in]           const WORD            *pwGlyphs,
  [in]           int                   cGlyphs,
  [in]           const int             *piAdvance,
  [in, optional] const int             *piJustify,
  [in]           const GOFFSET         *pGoffset
);

Parameter

[in] hdc

Handle mit dem Gerätekontext. Weitere Informationen finden Sie unter Zwischenspeichern. Beachten Sie, dass diese Funktion im Gegensatz zu einigen anderen verwandten Uniscribe-Funktionen den Handle als obligatorisch definiert.

[in, out] psc

Zeiger auf eine SCRIPT_CACHE Struktur, die den Skriptcache identifiziert.

[in] x

Wert der x-Koordinate der ersten Glyphe.

[in] y

Wert der y-Koordinate der ersten Glyphe.

[in] fuOptions

Optionen, die dem fuOptions-Parameter von ExtTextOut entsprechen. Dieser Parameter kann entweder auf ETO_CLIPPED oder ETO_OPAQUE, auf beide Werte oder auf keinen Wert festgelegt werden.

[in, optional] lprc

Zeiger auf eine RECT-Struktur , die das Rechteck enthält, das zum Ausschneiden der Anzeige verwendet wird. Die Anwendung kann diesen Parameter auf NULL festlegen.

[in] psa

Zeiger auf eine SCRIPT_ANALYSIS Struktur, die aus einem vorherigen Aufruf von ScriptItemize abgerufen wurde.

[in] pwcReserved

Reserviert; muss auf NULL festgelegt werden.

[in] iReserved

Reserviert; muss 0 sein.

[in] pwGlyphs

Zeiger auf ein Array von Glyphen, die aus einem vorherigen Aufruf von ScriptShape abgerufen wurden.

[in] cGlyphs

Anzahl der Glyphen im Array, das von pwGlyphen angegeben wird. Die maximale Anzahl von Glyphen beträgt 65.536.

[in] piAdvance

Zeiger auf ein Array von Erweiterten Breiten, die aus einem vorherigen Aufruf von ScriptPlace abgerufen wurden.

[in, optional] piJustify

Zeiger auf ein Array von gerechtfertigten Vorschubbreiten (Zellbreiten). Die Anwendung kann diesen Parameter auf NULL festlegen.

[in] pGoffset

Zeiger auf eine GOFFSET-Struktur , die die x- und y-Offsets für die kombinierende Glyphe enthält.

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

Diese Funktion ruft die ExtTextOut-Funktion des Betriebssystems für die Textanzeige auf. Weitere Informationen finden Sie unter Anzeigen von Text mit Uniscribe.

Alle Arrays befinden sich in Anzeigereihenfolge, es sei denn, das fLogicalOrder-Element wird in der von psa angegebenen SCRIPT_ANALYSIS-Struktur festgelegt.

Bei jeder Ausführung, die von rechts nach links gerendert wird und durch Erzwingen des fLogicalOrder-Members von SCRIPT_ANALYSIS in logischer Reihenfolge generiert wurde, muss die Anwendung SetTextAlign (hdc, TA_RIGHT) aufrufen und die rechtsseitige Koordinate vor dem Aufrufen von ScriptTextOut angeben.

Das von piJustify angegebene Array stellt Zellbreiten für jede Glyphe bereit. Wenn die Breite einer Glyphe von der durch piAdvance angegebenen ungerechtfertigten Breite abweicht, wird der Glyphenzelle an ihrem nachfolgenden Rand Leerzeichen hinzugefügt oder entfernt. Die Glyphe ist immer an der Spitze ihrer Zelle ausgerichtet. Diese Regel gilt auch in visueller Reihenfolge.

Wenn eine Glyphenzelle erweitert wird, wird der zusätzliche Raum in der Regel durch das Hinzufügen von Leerzeichen geschaffen. Bei arabischen Skripts wird der zusätzliche Raum jedoch durch eine oder mehrere Kashida-Glyphen geschaffen, es sei denn, der zusätzliche Platz reicht für die kürzeste Kashida-Glyphe in der Schriftart nicht aus. Die Breite der kürzesten Kashida ist durch Aufrufen von ScriptGetFontProperties verfügbar.

Die Anwendung sollte einen Wert für piJustify nur übergeben, wenn die Zeichenfolge durch ScriptTextOut begründet werden muss. Normalerweise sollte die Anwendung NULL übergeben.

Die Anwendung sollte ScriptTextOut nicht zum Schreiben in eine Metadatei verwenden, es sei denn, die Metadatei wird ohne Schriftartenersetzung wiedergegeben, z. B. sofort auf demselben System für die skalierbare Seitenvorschau. ScriptTextOut zeichnet Glyphennummern in der Metadatei auf. Da die Glyphenzahlen von Schriftart zu Schriftart erheblich variieren, ist es unwahrscheinlich, dass die Datei ordnungsgemäß wiedergegeben wird, wenn verschiedene Schriftarten ersetzt werden. Wenn beispielsweise eine Metadatei in einem anderen Maßstab wiedergegeben wird, kann eine createFont-Anforderung , die in der Metadatei aufgezeichnet wurde, in eine Bitmap anstelle einer TrueType-Schriftart aufgelöst werden. Wenn die Metadatei auf einem anderen Computer wiedergegeben wird, werden die angeforderten Schriftarten möglicherweise nicht installiert. Um komplexe Skripts in einer Metadatei schriftartunabhängig zu schreiben, sollte die Anwendung ExtTextOut verwenden, um die logischen Zeichen direkt zu schreiben, sodass die Glyphengenerierung und -platzierung erst erfolgen, wenn der Text wiedergegeben wird.

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

   
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

GOFFSET

SCRIPT_ANALYSIS

SCRIPT_CACHE

ScriptGetFontProperties

ScriptItemize

ScriptPlace

ScriptShape

Uniscribe

Uniscribe Functions