Condividi tramite


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.

Importante A partire da Windows 8: per mantenere la possibilità di eseguire in Windows 7, un modulo che usa Uniscribe deve specificare Usp10.lib prima di gdi32.lib nell'elenco di librerie.
 

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

Vedi anche

Visualizzazione di testo con Uniscribe

GOFFSET

SCRIPT_ANALYSIS

SCRIPT_CACHE

ScriptGetFontProperties

ScriptItemize

ScriptPlace

ScriptShape

Uniscribe

Funzioni Uniscribe