Поделиться через


Функция ScriptXtoCP (usp10.h)

Создает начальный или конечный край кластера логических символов на основе смещения x выполнения.

Синтаксис

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

Параметры

[in] iX

Смещение в логических единицах от конца выполнения, указанного элементом fLogicalOrder структуры SCRIPT_ANALYSIS , указанной параметром psa .

[in] cChars

Количество логических кодовых точек в выполнении.

[in] cGlyphs

Количество глифов в выполнении.

[in] pwLogClust

Указатель на массив логических кластеров.

[in] psva

Указатель на массив SCRIPT_VISATTR структур, содержащих визуальные атрибуты для глифа.

[in] piAdvance

Указатель на массив расширенных ширин.

[in] psa

Указатель на структуру SCRIPT_ANALYSIS . Элемент fLogicalOrder указывает значение TRUE , чтобы использовать передний край выполнения, или FALSE , чтобы использовать конечный край.

[out] piCP

Указатель на буфер, в котором эта функция извлекает позицию символа, соответствующую координате x.

[out] piTrailing

Указатель на буфер, в котором эта функция извлекает расстояние в кодовых точках от переднего края логического символа до позиции iX . Если это значение равно 0, позиция iX находится на переднем крае логического символа. Дополнительные сведения см. в разделе «Примечания».

Возвращаемое значение

Возвращает 0 в случае успеха. Функция возвращает ненулевое значение HRESULT, если не удалось. Приложение может проверить возвращаемое значение с помощью макросов SUCCEEDED и FAILED .

Комментарии

Значения, передаваемые в эту функцию, обычно являются результатами предыдущих вызовов других функций Uniscribe. Дополнительные сведения см. в разделе Управление размещением курсора и тестированием попаданий .

Начальный и конечный края логического символа определяются направлением текста в выполнении (слева направо или справа налево). Для направления слева направо передний край совпадает с левым краем. Для направления справа налево передним краем является правый край.

Для скриптов, в которых курсор обычно помещается в середину кластера, например арабский и иврит, полученное положение символа может быть для любой кодовой точки в строке. В этом случае параметру piTrailing присваивается значение 0 или 1.

Для скриптов, в которых курсор обычно привязан к границам кластера, позиция полученного символа всегда является позицией первой кодовой точки в кластере (считается логическим). Параметр piTrailing имеет значение 0 или число кодовых точек в кластере.

Соответствующая позиция курсора для нажатия мыши всегда — это позиция полученного символа плюс расстояние, указанное piTrailing.

Когда iX указывает на позицию за пределами выполнения, ScriptXtoCP действует так, как будто за каждым концом выполнения имеется очень большой символ. Это приводит к поведению, приведенному в следующей таблице.

Положение iX (вне запуска) Результат
Перед выполнением, то есть iX< 0, если выполняется слева направо, или iX> = сумма авансов, если выполнение выполняется справа налево Значение piCP равно -1, а значение piTrailing — 0
После выполнения, то есть iX> = сумма авансов, если выполняется слева направо, или iX< 0, если выполняется справа налево. Значение piCP — это значение cChars, а значение piTrailing — 1.
 
Важно Начиная с Windows 8. Чтобы поддерживать возможность запуска в Windows 7, модуль, использующий Uniscribe, должен указать Usp10.lib перед gdi32.lib в списке библиотек.
 

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header usp10.h
Библиотека Usp10.lib
DLL Usp10.dll
Распространяемые компоненты Internet Обозреватель 5 или более поздней версии в Windows Me/98/95

См. также раздел

SCRIPT_ANALYSIS

SCRIPT_VISATTR

Одноимесяца

Функции uniscribe