Функция ScriptTextOut (usp10.h)
Отображает текст для указанной фигуры скрипта и сведений о месте.
Синтаксис
HRESULT ScriptTextOut(
[in] const HDC hdc,
[in, out] SCRIPT_CACHE *psc,
[in] int x,
[in] int y,
[in] UINT fuOptions,
[in, optional] const RECT *lprc,
[in] const SCRIPT_ANALYSIS *psa,
[in] const WCHAR *pwcReserved,
[in] int iReserved,
[in] const WORD *pwGlyphs,
[in] int cGlyphs,
[in] const int *piAdvance,
[in, optional] const int *piJustify,
[in] const GOFFSET *pGoffset
);
Параметры
[in] hdc
Обработка в контексте устройства. Дополнительные сведения см. в разделе Кэширование. Обратите внимание, что, в отличие от некоторых других связанных функций Uniscribe, эта функция определяет дескриптор как обязательный.
[in, out] psc
Указатель на структуру SCRIPT_CACHE , определяющую кэш скриптов.
[in] x
Значение координаты x первого глифа.
[in] y
Значение координаты Y первого глифа.
[in] fuOptions
Параметры, эквивалентные параметру fuOptionsобъекта ExtTextOut. Этому параметру можно задать значение ETO_CLIPPED или ETO_OPAQUE, оба значения или ни одно из значений.
[in, optional] lprc
Указатель на структуру RECT , содержащую прямоугольник, используемый для обрезки дисплея. Приложение может задать для этого параметра значение NULL.
[in] psa
Указатель на структуру SCRIPT_ANALYSIS , полученную при предыдущем вызове ScriptItemize.
[in] pwcReserved
Защищены; необходимо задать значение NULL.
[in] iReserved
Защищены; значение должно иметь значение 0.
[in] pwGlyphs
Указатель на массив глифов, полученных при предыдущем вызове ScriptShape.
[in] cGlyphs
Количество глифов в массиве, указанное pwGlyphs. Максимальное число глифов — 65 536.
[in] piAdvance
Указатель на массив расширенных ширин, полученных при предыдущем вызове ScriptPlace.
[in, optional] piJustify
Указатель на массив оправданных ширин (ширины ячеек). Приложение может задать для этого параметра значение NULL.
[in] pGoffset
Указатель на структуру GOFFSET , содержащую смещения x и y для комбинированного глифа.
Возвращаемое значение
Возвращает 0 в случае успеха. Функция возвращает ненулевое значение HRESULT, если это не удалось. Приложение может проверить возвращаемое значение с помощью макросов SUCCEEDED и FAILED .
Комментарии
Эта функция вызывает функцию ExtTextOut операционной системы для отображения текста. Дополнительные сведения см. в разделе Отображение текста с помощью Uniscribe.
Все массивы находятся в порядке отображения, если только элемент fLogicalOrder не задан в структуре SCRIPT_ANALYSIS , указанной psa.
Для любого запуска, отображаемого справа налево и созданного в логическом порядке путем принудительного применения элемента fLogicalOrderSCRIPT_ANALYSIS, приложение должно вызвать SetTextAlign (hdc, TA_RIGHT) и задать правую координату перед вызовом ScriptTextOut.
Массив, указанный piJustify , предоставляет ширину ячеек для каждого глифа. Если ширина глифа отличается от неоправданной ширины, заданной параметром piAdvance, пространство добавляется или удаляется из ячейки глифа в ее конце. Глиф всегда выравнивается по переднему краю ячейки. Это правило применяется даже в визуальном порядке.
При расширении ячейки глифа дополнительное пространство обычно составляется за счет добавления пробела. Однако для арабской письменности дополнительное пространство состоит из одного или нескольких глифов кашиды, если только дополнительного места недостаточно для самого короткого глифа кашиды в шрифте. Ширина самого короткого kashida доступна путем вызова ScriptGetFontProperties.
Приложение должно передавать значение для piJustify только в том случае, если строка должна быть оправдана с помощью ScriptTextOut. Обычно приложение должно передавать значение NULL.
Приложение не должно использовать ScriptTextOut для записи в метафайл, если только метафайл не будет воспроизведен без подстановки шрифта, например, непосредственно в той же системе для масштабируемого предварительного просмотра страницы. ScriptTextOut записывает номера глифов в метафайл. Так как числа глифов значительно отличаются от одного шрифта к другому, файл вряд ли будет воспроизводиться правильно при замене разных шрифтов. Например, при воспроизведении метафайла в другом масштабе запрос CreateFont , записанный в метафайле, может разрешаться в точечный рисунок вместо шрифта TrueType. Аналогичным образом, если метафайл воспроизводится на другом компьютере, запрошенные шрифты могут не быть установлены. Чтобы писать сложные скрипты в метафайл независимо от шрифта, приложение должно использовать ExtTextOut для записи логических символов напрямую, чтобы генерирование и размещение глифов не происходили до тех пор, пока текст не будет воспроизведен.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | usp10.h |
Библиотека | Usp10.lib |
DLL | Usp10.dll |
Распространяемые компоненты | Internet Обозреватель 5 или более поздней версии в Windows Me/98/95 |