Метод IDWriteTextRenderer1::D rawUnderline (dwrite_2.h)
IDWriteTextLayout::Draw вызывает эту функцию, чтобы указать клиенту нарисовать подчеркивание.
Синтаксис
HRESULT DrawUnderline(
void *clientDrawingContext,
FLOAT baselineOriginX,
FLOAT baselineOriginY,
DWRITE_GLYPH_ORIENTATION_ANGLE orientationAngle,
[in] DWRITE_UNDERLINE const *underline,
IUnknown *clientDrawingEffect
);
Параметры
clientDrawingContext
Тип: void*
Определенный приложением контекст рисования, передаваемый в IDWriteTextLayout::Draw.
baselineOriginX
Тип: FLOAT
Расположение пикселей (координата X) в базовом источнике выполнения, где применяется подчеркивание.
baselineOriginY
Тип: FLOAT
Расположение пикселя (координата Y) в базовом источнике выполнения, где применяется подчеркивание.
orientationAngle
Тип: DWRITE_GLYPH_ORIENTATION_ANGLE
Ориентация подчеркивания.
[in] underline
Тип: const DWRITE_UNDERLINE*
Указатель на структуру, содержащую логическую информацию подчеркивания.
clientDrawingEffect
Тип: IUnknown*
Определяемый приложением эффект для применения к подчеркивания. Обычно этот аргумент представляет такие эффекты, как кисть переднего плана, заполняя внутреннюю часть линии.
Возвращаемое значение
Тип: HRESULT
Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Одно подчеркивание может быть разбито на несколько вызовов в зависимости от того, как форматирование изменяет атрибуты. Если размеры и стили шрифта изменяются в пределах подчеркивания, толщина и смещение будут усреднены в соответствии с символами. Чтобы получить соответствующую начальную позицию пикселя, добавьте в базовый план подчеркивание::смещение. В противном случае между текстом не будет интервалов. Координата x всегда будет передаваться как левая сторона, независимо от направления текста. Это упрощает рисование и уменьшает проблему округления, которая может привести к зазорам или двойной штамповки альфа-смеси. Чтобы избежать альфа-перекрытия, округляйте конечные точки до ближайшего пикселя устройства.
Требования
Минимальная версия клиента | Windows 7, Windows Vista с пакетом обновления 2 (SP2) и обновлением платформы для Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2) и Обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | dwrite_2.h |
Библиотека | Dwrite.lib |
DLL | Dwrite.dll |