Función ScriptXtoCP (usp10.h)
Genera el borde inicial o final de un clúster de caracteres lógicos a partir del desplazamiento x de una ejecución.
Sintaxis
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
);
Parámetros
[in] iX
Desplazamiento, en unidades lógicas, desde el final de la ejecución especificada por el miembro fLogicalOrder de la estructura SCRIPT_ANALYSIS indicada por el parámetro psa .
[in] cChars
Recuento de puntos de código lógicos en la ejecución.
[in] cGlyphs
Recuento de glifos en la ejecución.
[in] pwLogClust
Puntero a una matriz de clústeres lógicos.
[in] psva
Puntero a una matriz de SCRIPT_VISATTR estructuras que contienen los atributos visuales del glifo.
[in] piAdvance
Puntero a una matriz de anchos avanzados.
[in] psa
Puntero a una estructura de SCRIPT_ANALYSIS . El miembro fLogicalOrder indica TRUE para usar el borde inicial de la ejecución, o FALSE para usar el borde final.
[out] piCP
Puntero a un búfer en el que esta función recupera la posición del carácter correspondiente a la coordenada x.
[out] piTrailing
Puntero a un búfer en el que esta función recupera la distancia, en puntos de código, desde el borde inicial del carácter lógico hasta la posición de iX . Si este valor es 0, la posición de iX está en el borde inicial del carácter lógico. Para obtener más información, vea la sección Comentarios.
Valor devuelto
Si la operación se realiza correctamente, devuelve 0. La función devuelve un valor HRESULT distinto de cero si no se realiza correctamente. La aplicación puede probar el valor devuelto con las macros SUCCEEDED y FAILED .
Comentarios
Los valores pasados a esta función normalmente son los resultados de las llamadas anteriores a otras funciones Uniscribe. Consulte Managing Caret Placement and Hit Testing (Administración de la selección de ubicación de intercalación y pruebas de posicionamiento) para obtener más información.
Los bordes iniciales y finales del carácter lógico están determinados por la dirección del texto de la ejecución (de izquierda a derecha o derecha a izquierda). Para la dirección izquierda a derecha, el borde inicial es el mismo que el borde izquierdo. Para la dirección derecha a izquierda, el borde inicial es el borde derecho.
En el caso de los scripts en los que el símbolo de intercalación se coloca convencionalmente en medio de un clúster, por ejemplo, árabe y hebreo, la posición del carácter recuperado puede ser para cualquier punto de código de la línea. En este caso, el parámetro piTrailing se establece en 0 o 1.
En el caso de los scripts en los que el símbolo de intercalación se ajusta convencionalmente a los límites de un clúster, la posición del carácter recuperado siempre es la posición del primer punto de código de un clúster (considerado lógicamente). El parámetro piTrailing se establece en 0 o en el número de puntos de código del clúster.
La posición de intercalación adecuada para un clic del mouse siempre es la posición de carácter recuperada más la distancia indicada por piTrailing.
Cuando iX indica una posición fuera de la ejecución, ScriptXtoCP actúa como si hubiera un carácter extra infinitamente grande más allá de cada extremo de la ejecución. Esto da como resultado el comportamiento que se muestra en la tabla siguiente.
Posición de iX (fuera de la ejecución) | Resultado |
---|---|
Antes de la ejecución, es decir: iX< 0 si la ejecución es de izquierda a derecha o iX>= suma de avances si la ejecución es de derecha a izquierda | El valor de piCP es -1 y el valor de piTrailing es 0. |
Después de la ejecución, es decir: iX>= suma de avances si la ejecución es de izquierda a derecha, o iX< 0 si la ejecución es de derecha a izquierda | El valor de piCP es el valor de cChars y el valor de piTrailing es 1. |
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | usp10.h |
Library | Usp10.lib |
Archivo DLL | Usp10.dll |
Redistribuible | Internet Explorer 5 o posterior en Windows Me/98/95 |