Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Ниже приведены варианты отображения и связанной обработки текста для поддержки тонких эффектов типографии или сложных скриптов:
- Текстовые функции
- Изменение элементов управления
- Элементы управления текстовым редактором с расширенными функциями
- Юнипись
Параметры, которые вы выбираете, зависят от следующих факторов:
- Тип текста или скриптов.
- Модель реализации, например, макет текста и обработка разрыва строк приложением.
- Обновление существующего приложения и создания нового приложения.
Как правило, приложение, выполняющее относительно простую обработку скриптов, может выбрать любой вариант обработки сложных скриптов. Однако для наиболее полного управления сложной обработкой скриптов рекомендуется использовать Uniscribe.
Сложная обработка скриптов с помощью текстовых функций
Приложения, использующие в основном обычный текст, то есть текст, использующий тот же шрифт, вес, цвет и т. д., традиционно писал текст и измеряли длину строк с помощью стандартных текстовых функций, таких как TextOut, ExtTextOut, TabbedTextOut, DrawTextи GetTextExtentExtentExPoint. Эти функции поддерживают обработку сложных сценариев и тонких эффектов оформления. Дополнительные сведения см. в разделе Шрифты и текст.
Как правило, стандартная поддержка текста является прозрачной для приложений, обрабатывающих сложные скрипты. Однако следует учитывать некоторые правила для написания приложений, поддерживающих финальную типографику и обработку сложных скриптов.
- Приложение должно сохранять символы в буфере и отображать всю строку текста одновременно, вместо того чтобы вызывать ExtTextOut по мере ввода пользователем каждого символа. Этот механизм позволяет модулям расширенного формирования текста использовать контекст для правильного переупорядочения и правильного создания глифов.
- Приложение должно использовать GetTextExtentExtentExPoint для определения длины строки, а не вычислений длины строк из кэшированных ширин символов, так как ширина глифа может отличаться по контексту.
- Приложение может добавить поддержку порядка чтения справа налево и выравнивания вправо при необходимости.
- Переупорядочение и контекстную обработку, необходимую для сложных скриптов или тонкой типографии, требует значительного увеличения объема обработки по сравнению с базовым текстовым отображением для простых скриптов. Таким образом, чтобы избежать проблем с производительностью, приложение не должно обрабатывать большие объемы текста перед отображением результатов и возвратом управления пользователю.
Сложная обработка скриптов с помощью элементов управления редактированием
Стандартные элементы управления редактированием Windows были расширены для поддержки многоязычного текста и сложных сценариев. Расширенная поддержка включает ввод и отображение, а также правильное перемещение курсора по кластерам символов, например в сценариях Тайского и Деванагари. Дополнительные сведения см. в разделе Изменение элементов управления.
Сложная обработка скриптов с помощью элементов управления Rich Edit
Rich Edit 3.0 — это более высокий уровень коллекции интерфейсов, использующих Uniscribe для изоляции приложений текстового макета от сложностей определенных скриптов. Rich Edit — это самый простой способ отображения сложных скриптов приложениями, даже если их основное назначение не обязательно является текстовым макетом. Rich Edit обеспечивает быстрое, универсальное редактирование многоязычного текста Юникода и простого обычного текста. Он включает обширные интерфейсы сообщений и COM, редактирование текста, форматирование, разрыв строк, простой макет таблицы, вертикальный текстовый макет, двунаправленный текстовый макет, поддержку индийских и тайских языков, редактирование пользовательского интерфейса, похожего на Microsoft Word, а также интерфейсы текстовой объектной модели.
Помимо интерфейсов Rich Edit, приложения могут использовать функцию Rich Edit TextOut для автоматического анализа, формирования, позиционирования и разрыва линий. Дополнительные сведения см. в разделе Расширенные элементы управления редактированием.
Сложная обработка скриптов с помощью Юниписи
Uniscribe обеспечивает самую широкую поддержку обработки текста с использованием тонких эффектов типографии и сложных скриптов. Он поддерживает сложные правила, используемые в письменностях, таких как арабская, деванагари и тайская. Он обрабатывает скрипты, написанные справа налево, например арабский и иврит, и поддерживает сочетание сценариев. Uniscribe также открывает доступ к функциям шрифтов OpenType, которые могут использоваться приложениями для управления точными типографскими эффектами. Дополнительные сведения см. в обработке сложных скриптов.
Связанные разделы