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


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

Позиционирует один глиф с одной корректировкой, используя указанную функцию, предоставленную в шрифте для обработки OpenType. Чаще всего эта функция используется приложениями для оптического выравнивания глифа в начале или конце строки.

Синтаксис

HRESULT ScriptPositionSingleGlyph(
  [in, optional] HDC             hdc,
  [in, out]      SCRIPT_CACHE    *psc,
  [in, optional] SCRIPT_ANALYSIS *psa,
  [in]           OPENTYPE_TAG    tagScript,
  [in]           OPENTYPE_TAG    tagLangSys,
  [in]           OPENTYPE_TAG    tagFeature,
  [in]           LONG            lParameter,
  [in]           WORD            wGlyphId,
  [in]           int             iAdvance,
  [in]           GOFFSET         GOffset,
  [out]          int             *piOutAdvance,
  [out]          GOFFSET         *pOutGoffset
);

Параметры

[in, optional] hdc

Дескриптор контекста устройства. Дополнительные сведения см. в разделе Кэширование.

[in, out] psc

Указатель на структуру SCRIPT_CACHE , определяющую кэш скриптов.

[in, optional] psa

Указатель на структуру SCRIPT_ANALYSIS , полученную из предыдущего вызова ScriptItemizeOpenType. Эта структура идентифицирует механизм формирования, чтобы можно было получить дополнительные ширины.

Кроме того, приложение может присвоить этому параметру значение NULL , чтобы получить неотфильтрованные результаты.

[in] tagScript

Структура OPENTYPE_TAG , определяющая тег скрипта для формирования.

[in] tagLangSys

Структура OPENTYPE_TAG , определяющая тег языка для формирования.

[in] tagFeature

Структура OPENTYPE_TAG , определяющая тег компонента, используемый для формирования альтернативного глифа.

[in] lParameter

Флаг, указывающий, следует ли применять одну подстановку к идентификатору, указанному в wGlyphId. Приложение задает этому параметру значение 1, чтобы применить к идентификатору одну функцию подстановки. Приложение устанавливает для параметра значение 0, если функция не должна применять функцию.

[in] wGlyphId

Идентификатор исходного формируемого глифа.

[in] iAdvance

Исходная ширина глифа.

[in] GOffset

Исходное смещение глифа. Как правило, это значение является выходными данными ScriptPlaceOpenType или ScriptPlace.

[out] piOutAdvance

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

[out] pOutGoffset

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

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

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

Комментарии

Эта функция позиционирует отдельный глиф, изменяя ширину и/или смещение заданного глифа. Функция предполагает, что для шрифта требуется только одна корректировка.

Типичным использованием этой функции является небольшая корректировка поля с учетом визуального впечатления, созданного определенными символами. Например, в латинском алфавите в начале строки обычно выполняется небольшая корректировка влево для начальной прописной буквы (например, "T" или "O"), которая не имеет вертикальной линии в левой части глифа. Хотя это нарушает строгое линейное поле, глаз воспринимает это поле как более равномерное.

Этот эффект демонстрируется в следующих примерах. В первом примере показано строгое выравнивание; В следующих двух примерах показана корректировка начального значения "T" влево. Корректировки выполняются на один пиксель и два пикселя соответственно. Увеличенные изображения справа показывают, как "T" толкает немного дальше в левое поле в каждом последующем случае.

Иллюстрация, показывающая один и тот же блок текста три раза, с увеличением каждого из них с небольшими различиями в выравнивании
Важно Начиная с Windows 8. Чтобы поддерживать возможность запуска в Windows 7, модуль, использующий Uniscribe, должен указать Usp10.lib перед gdi32.lib в списке библиотек.
 

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header usp10.h
Библиотека Usp10.lib
DLL Usp10.dll
Распространяемые компоненты Usp10.dll версии 1.600 или более поздней в Windows XP

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

Кэширование

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

ScriptItemizeOpenType

Одноимесяца

Функции uniscribe