Funzione ScriptTextOut (usp10.h)
Visualizza il testo per la forma e il posizionamento dello script specificati.
Sintassi
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
);
Parametri
[in] hdc
Gestire nel contesto del dispositivo. Per altre informazioni, vedere Memorizzazione nella cache. Si noti che, a differenza di altre funzioni Uniscribe correlate, questa funzione definisce l'handle come obbligatorio.
[in, out] psc
Puntatore a una struttura SCRIPT_CACHE che identifica la cache degli script.
[in] x
Valore della coordinata x del primo glifo.
[in] y
Valore della coordinata y del primo glifo.
[in] fuOptions
Opzioni equivalenti al parametro fuOptions di ExtTextOut. Questo parametro può essere impostato su ETO_CLIPPED o ETO_OPAQUE, su entrambi i valori o su nessuno dei due valori.
[in, optional] lprc
Puntatore a una struttura RECT contenente il rettangolo utilizzato per ritagliare la visualizzazione. L'applicazione può impostare questo parametro su NULL.
[in] psa
Puntatore a una struttura SCRIPT_ANALYSIS ottenuta da una chiamata precedente a ScriptItemize.
[in] pwcReserved
Riservati; deve essere impostato su NULL.
[in] iReserved
Riservati; deve essere 0.
[in] pwGlyphs
Puntatore a una matrice di glifi ottenuti da una chiamata precedente a ScriptShape.
[in] cGlyphs
Conteggio dei glifi nella matrice indicata da pwGlyphs. Il numero massimo di glifi è 65.536.
[in] piAdvance
Puntatore a una matrice di larghezze avanzate ottenute da una chiamata precedente a ScriptPlace.
[in, optional] piJustify
Puntatore a una matrice di larghezze di avanzamento giustificate (larghezze delle celle). L'applicazione può impostare questo parametro su NULL.
[in] pGoffset
Puntatore a una struttura GOFFSET contenente gli offset x e y per il glifo combinato.
Valore restituito
Restituisce 0 in caso di esito positivo. Se non ha esito positivo, la funzione restituisce un valore HRESULT diverso da zero. L'applicazione può testare il valore restituito con le macro SUCCEEDED e FAILED .
Commenti
Questa funzione chiama la funzione ExtTextOut del sistema operativo per la visualizzazione del testo. Per altre informazioni, vedere Visualizzazione di testo con Uniscribe.
Tutte le matrici sono in ordine di visualizzazione, a meno che il membro fLogicalOrder non sia impostato nella struttura SCRIPT_ANALYSIS indicata da psa.
Per qualsiasi esecuzione sottoposta a rendering da destra a sinistra e generata in ordine logico forzando il membro fLogicalOrder di SCRIPT_ANALYSIS, l'applicazione deve chiamare SetTextAlign (hdc, TA_RIGHT) e assegnare la coordinata sul lato destro prima di chiamare ScriptTextOut.
La matrice indicata da piJustify fornisce la larghezza delle celle per ogni glifo. Quando la larghezza di un glifo è diversa dalla larghezza ingiusta, specificata da piAdvance, lo spazio viene aggiunto o rimosso dalla cella del glifo al bordo finale. Il glifo è sempre allineato al bordo iniziale della cella. Questa regola si applica anche in ordine visivo.
Quando una cella del glifo viene estesa, lo spazio aggiuntivo è in genere costituito dall'aggiunta di spazi vuoti. Tuttavia, per gli script arabi, lo spazio aggiuntivo è costituito da uno o più glifi kashida, a meno che lo spazio aggiuntivo non sia insufficiente per il glifo kashida più breve nel tipo di carattere. La larghezza della kashida più breve è disponibile chiamando ScriptGetFontProperties.
L'applicazione deve passare un valore per piJustify solo se la stringa deve essere giustificato da ScriptTextOut. In genere, l'applicazione deve passare NULL.
L'applicazione non deve usare ScriptTextOut per scrivere in un metafile, a meno che il metafile non venga riprodotto senza alcuna sostituzione del tipo di carattere, ad esempio immediatamente nello stesso sistema per l'anteprima della pagina scalabile. ScriptTextOut registra i numeri di glifo nel metafile. Poiché i numeri del glifo variano notevolmente da un tipo di carattere a un altro, è improbabile che il file venga riprodotto correttamente quando vengono sostituiti tipi di carattere diversi. Ad esempio, quando un metafile viene riprodotto su una scala diversa, una richiesta CreateFont registrata nel metafile può risolversi in una bitmap anziché in un tipo di carattere TrueType. Analogamente, se il metafile viene riprodotto in un computer diverso, i tipi di carattere richiesti potrebbero non essere installati. Per scrivere script complessi in un metafile in modo indipendente dal tipo di carattere, l'applicazione deve usare ExtTextOut per scrivere direttamente i caratteri logici, in modo che la generazione e il posizionamento del glifo non si verifichino finché il testo non viene riprodotto.
Requisiti
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | usp10.h |
Libreria | Usp10.lib |
DLL | Usp10.dll |
Componente ridistribuibile | Internet Explorer 5 o versione successiva in Windows Me/98/95 |