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