Использование функций ScriptString

Для приложения, занимающегося неформатируемым текстом, Uniscribe предоставляет функции ScriptString*. Эти функции похожи на ExtTextOut, DrawTextи GetTextExtent, но обеспечивают полную поддержку сложных скриптов, включая размещение курсора. Эти функции похожи на другие функции Юниписи, но адаптированы к более простым требованиям обработки обычного текста.

В следующей таблице описаны функции ScriptString* и любые аналоги в других функциях Юниписи.

Функция Описание
ScriptStringAnalyse Анализирует обычный текст. Эта функция соответствует следующим функциям:
ScriptItemize
ScriptShape
ScriptPlace
ScriptBreak
ScriptGetCMap
ScriptJustify
ScriptLayout
ScriptStringCPtoX Извлекает координату x для позиции символа. Эта функция соответствует ScriptCPtoX.
ScriptStringFree Освобождает структуру SCRIPT_STRING_ANALYSIS.
ScriptStringGetLogicalWidths Преобразует визуальные ширины в логические ширины. Эта функция соответствует ScriptGetLogicalWidths.
ScriptStringGetOrder Отображает позиции глифов символов аналогично функции GetCharacterPlacement, предназначено только для устаревшего использования. Эта функция не работает хорошо с скриптами, которые создают более одного глифа для каждой точки кода.
ScriptStringOut Отображает обычный текст. Эта функция соответствует ScriptTextOut.
ScriptString_pcOutChars Возвращает указатель на длину обрезанной строки обычного текста.
ScriptString_pLogAttr Возвращает указатель на буфер логических атрибутов для проанализированной строки обычного текста.
ScriptString_pSize Возвращает указатель на размер (ширину и высоту) для проанализированной строки обычного текста.
ScriptStringValidate Определяет последовательности точек кода, недопустимые в данном скрипте. Эта функция отличается от ScriptGetCMap, которая определяет точки кода, не присутствующих в шрифте.
ScriptStringXtoCP Преобразует координату x в положение символа. Эта функция соответствует ScriptXtoCP.

Чтобы отображать только обычный текст без каких-либо изменений, приложение должно вызывать ScriptStringAnalyse, ScriptStringOut, а затем ScriptStringFree. Другие функции используются для изменения обычного текста перед отображением.

Использование Uniscribe