Condividi tramite


Funzione ScriptXtoCP (usp10.h)

Genera il bordo iniziale o finale di un cluster di caratteri logici dall'offset x di un'esecuzione.

Sintassi

HRESULT ScriptXtoCP(
  [in]  int                   iX,
  [in]  int                   cChars,
  [in]  int                   cGlyphs,
  [in]  const WORD            *pwLogClust,
  [in]  const SCRIPT_VISATTR  *psva,
  [in]  const int             *piAdvance,
  [in]  const SCRIPT_ANALYSIS *psa,
  [out] int                   *piCP,
  [out] int                   *piTrailing
);

Parametri

[in] iX

Offset, in unità logiche, dalla fine dell'esecuzione specificata dal membro fLogicalOrder della struttura SCRIPT_ANALYSIS indicata dal parametro psa .

[in] cChars

Numero di punti di codice logici nell'esecuzione.

[in] cGlyphs

Numero di glifi nell'esecuzione.

[in] pwLogClust

Puntatore a una matrice di cluster logici.

[in] psva

Puntatore a una matrice di strutture SCRIPT_VISATTR contenenti gli attributi visivi per il glifo.

[in] piAdvance

Puntatore a una matrice di larghezze avanzate.

[in] psa

Puntatore a una struttura SCRIPT_ANALYSIS . Il membro fLogicalOrder indica TRUE per usare il bordo iniziale dell'esecuzione o FALSE per utilizzare il bordo finale.

[out] piCP

Puntatore a un buffer in cui questa funzione recupera la posizione del carattere corrispondente alla coordinata x.

[out] piTrailing

Puntatore a un buffer in cui questa funzione recupera la distanza, espressa in punti di codice, dal bordo iniziale del carattere logico alla posizione iX . Se questo valore è 0, la posizione iX si trova al bordo iniziale del carattere logico. Per altre informazioni, vedere la sezione Osservazioni.

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

I valori passati a questa funzione sono in genere i risultati delle chiamate precedenti ad altre funzioni Uniscribe. Per informazioni dettagliate, vedere Gestione del posizionamento del cursore e hit testing .

I bordi iniziali e finali del carattere logico sono determinati dalla direzione del testo nell'esecuzione (da sinistra a destra o da destra a sinistra). Per la direzione da sinistra a destra, il bordo iniziale corrisponde al bordo sinistro. Per la direzione da destra a sinistra, il bordo iniziale è il bordo destro.

Per gli script in cui il cursore viene posizionato convenzionalmente al centro di un cluster, ad esempio arabo ed ebraico, la posizione del carattere recuperato può essere per qualsiasi punto di codice nella riga. In questo caso, il parametro piTrailing è impostato su 0 o 1.

Per gli script in cui il cursore viene ritagliato convenzionalmente fino ai limiti di un cluster, la posizione del carattere recuperato è sempre la posizione del primo punto di codice in un cluster (considerato logicamente). Il parametro piTrailing è impostato su 0 o sul numero di punti di codice nel cluster.

La posizione del cursore appropriata per un colpo del mouse è sempre la posizione del carattere recuperata più la distanza indicata da piTrailing.

Quando iX indica una posizione all'esterno dell'esecuzione, ScriptXtoCP agisce come se esiste un carattere di dimensioni infinite superiori a ogni fine dell'esecuzione. In questo modo si ottiene il comportamento illustrato nella tabella seguente.

posizione iX (all'esterno dell'esecuzione) Risultato
Prima dell'esecuzione, ovvero : iX< 0 se l'esecuzione è da sinistra a destra o iX>= somma di avanzamenti se l'esecuzione è da destra a sinistra Il valore di piCP è -1 e il valore di piTrailing è 0
Dopo l'esecuzione, ovvero : iX>= somma di avanzamenti se l'esecuzione è da sinistra a destra o iX< 0 se l'esecuzione è da destra a sinistra Il valore di piCP è cChars e il valore di piTrailing è 1
 
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

SCRIPT_ANALYSIS

SCRIPT_VISATTR

Uniscribe

Funzioni Uniscribe