Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы предоставить текстовое обоснование, приложение может использовать один из двух методов. Для простой реализации многоязычного обоснования приложение должно вызывать ScriptJustify. Он создает разностный массив dx, учитывая кашиду, затем интервалы между словами и затем интервалы между символами. Для более сложного обоснования приложение может создать обновленный массив delta dx с помощью собственных языковых знаний и информации, полученной ScriptShape в массиве SCRIPT_VISATTR.
Пространство обоснования или кашиду следует вставить в месте, указанном uJustification элемента SCRIPT_VISATTR. При выполнении межзначного обоснования приложение должно вставить дополнительное пространство только после глифов, помеченных SCRIPT_JUSTIFY_CHARACTER.
Приложение выполняет размещение курсора и тестирование на пересечения с помощью ScriptXtoCP и ScriptCPtoX. Дополнительные сведения см. в разделе Управление размещением и проверкой попаданий.
Чтобы получить ширину независимо от шрифта, приложение вызывает ScriptGetLogicalWidths. Передав логические ширины в ScriptApplyLogicalWidth, блок текста можно отобразить вновь в тех же границах с допустимой потерей качества, даже если исходный шрифт недоступен. Он создает массив значений ширины глифов (значения ширины), подходящий для передачи в ScriptTextOut. Такая запись и повторное применение сведений о ширине в независимом от шрифта формате может оказаться полезной в таких ситуациях, как "метафилинг" в формате, определённом приложением.
Заметка
Метафайлы не поддерживают индексы глифов. Чтобы записать в расширенный метафайл, приложение должно использовать ExtTextOut и записывать логические символы напрямую. С помощью этого механизма создание и размещение глифов не происходит до тех пор, пока текст не воспроизводится обратно.
Чтобы получить определенные глифы, используемые для символов по умолчанию, пустоты, кашиды и т. д. для текущего шрифта, приложение должно вызывать ScriptGetFontProperties. Чтобы определить, поддерживаются ли символы в последовательности выбранным шрифтом, приложение вызывает ScriptGetCMap. Символы, которые недоступны, имеют глиф по умолчанию в буфере глифа. Обратите внимание, что этот метод не срабатывает, если шрифт визуализирует символ с помощью сочетания глифов вместо одного глифа. Например, 00C9; ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА E С АКУТОМ может быть представлена с помощью глифа заглавной буквы E и глифа акутового знака. Чтобы определить поддержку шрифта для строки, содержащей эти типы точек кода, приложение может вызывать ScriptShape. Дополнительные сведения см. в разделе Использование модулей формирования.
Функция ScriptCacheGetHeight возвращает высоту шрифта из кэша шрифтов. ScriptGetProperties предоставляет сведения о специальной обработке, необходимой для всех скриптов, индексированных по скрипту. Например, он включает основной язык, связанный со скриптом, данные, указывающие, является ли скрипт числовым, и данные, указывающие, является ли скрипт сложным скриптом.
ScriptGetGlyphABCWidth возвращает ширину ABC заданного глифа, что может быть полезно для рисования глифовых диаграмм. Однако его не следует использовать для обычного форматирования текста сложного скрипта.
Связанные разделы