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