Condividi tramite


Funzione ScriptJustify (usp10.h)

Crea una tabella di larghezze avanzate per consentire la giustificazione del testo quando viene passata alla funzione ScriptTextOut .

Sintassi

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

Parametri

[in] psva

Puntatore a una matrice, di lunghezza indicata da cGlyphs, contenente SCRIPT_VISATTR strutture. Ogni struttura contiene attributi visivi per un glifo nella riga da elaborare.

[in] piAdvance

Puntatore a una matrice di larghezze avanzate, di lunghezza indicata da cGlyphs, ottenuta da una chiamata precedente a ScriptPlace.

[in] cGlyphs

Numero di glifi per le matrici indicate da psva e piAdvance. Questo parametro indica anche il numero di glifi per il parametro di output piJustify.

[in] iDx

Larghezza, in pixel, della modifica desiderata, un aumento della diminuzione.

[in] iMinKashida

Larghezza minima di un glifo kashida da generare.

[out] piJustify

Puntatore a un buffer in cui questa funzione recupera una matrice, di lunghezza indicata da cGlyphs, contenente larghezze di avanzamento giustificate. Le larghezze giustificate sono talvolta denominate "larghezze delle celle" per distinguerle da larghezze di avanzamento non giustificate.

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

Per informazioni sul contesto in cui questa funzione viene normalmente chiamata, vedere Visualizzazione di testo con Uniscribe .

Questa funzione fornisce una semplice implementazione di giustificazione multilingue. Stabilisce la quantità di regolazione da apportare a ogni posizione del glifo sulla linea. Interpreta la matrice di SCRIPT_VISATTR generata da una chiamata a ScriptShape, dando la priorità massima a kashida. La funzione usa la spaziatura interword se non sono disponibili punti kashida. Usa la spaziatura intercharacter se non sono disponibili punti interword.

Nota I formattatori di testo sofisticati possono generare la propria matrice dx delta combinando caratteristiche specifiche del formattatore con le informazioni recuperate da ScriptShape nella matrice di SCRIPT_VISATTR .
 
L'applicazione deve passare le larghezze di avanzamento giustificate generate da ScriptJustify a ScriptTextOut nel parametro piJustify .

ScriptJustify crea una matrice giustificato contenente larghezze di avanzamento aggiornate per ogni glifo. Quando viene aumentata una larghezza di avanzamento per un glifo, viene eseguito il rendering della larghezza aggiuntiva a destra del glifo, con uno spazio vuoto o, per il testo arabo, un kashida.

Nota L'inserimento di Kashida si verifica a destra del glifo per giustificare visivamente. Microsoft Word e Microsoft PowerPoint usano questo concetto. Qualsiasi modifica nell'algoritmo di posizionamento kashida deve accompagnare una modifica nel gestore ScriptTextOut corrispondente per uno script specifico, ad esempio il gestore di giustificazione TextOut arabo.
 
A volte l'applicazione tenta di gestire glifi che non possono essere giustificati, nel qual caso il membro uJustification di SCRIPT_VISATTR è impostato su SCRIPT_JUSTIFY_NONE. In questo caso , ScriptJustify copia la matrice di input indicata da piAdvance nella matrice di output indicata da piJustify e restituisce S_FALSE all'applicazione.
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

Requisito Valore
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

SCRIPT_VISATTR

ScriptPlace

ScriptShape

ScriptTextOut

Uniscribe

Funzioni Uniscribe