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


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

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

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

Функция Описание
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