Интерфейс IDWriteTextLayout (dwrite.h)
Интерфейс IDWriteTextLayout представляет блок текста после его полного анализа и форматирования.
Наследование
Интерфейс IDWriteTextLayout наследуется от IDWriteTextFormat. IDWriteTextLayout также имеет следующие типы элементов:
Методы
Интерфейс IDWriteTextLayout содержит следующие методы.
IDWriteTextLayout::D etermineMinWidth Определяет минимальную возможную ширину макета без аварийного разрыва между символами целых слов. |
IDWriteTextLayout::D raw Рисует текст с использованием указанного контекста рисования клиента. |
IDWriteTextLayout::GetClusterMetrics Извлекает логические свойства и измерения каждого кластера глифов. |
IDWriteTextLayout::GetDrawingEffect Возвращает определенный приложением эффект рисования в указанной позиции текста. |
IDWriteTextLayout::GetFontCollection Возвращает коллекцию шрифтов, связанную с текстом в указанной позиции. |
IDWriteTextLayout::GetFontFamilyName Копирует имя семейства шрифтов текста в указанной позиции. |
IDWriteTextLayout::GetFontFamilyNameLength Возвращает длину имени семейства шрифтов в текущей позиции. |
IDWriteTextLayout::GetFontSize Возвращает высоту шрифта текста в указанной позиции. |
IDWriteTextLayout::GetFontStretch Получает растяжение шрифта текста в указанной позиции. |
IDWriteTextLayout::GetFontStyle Возвращает стиль шрифта (также называемый наклоном) текста в указанной позиции. |
IDWriteTextLayout::GetFontWeight Возвращает вес шрифта текста в указанной позиции. |
IDWriteTextLayout::GetInlineObject Возвращает встроенный объект в указанной позиции. |
IDWriteTextLayout::GetLineMetrics Извлекает сведения о каждой отдельной текстовой строке текстовой строки. |
IDWriteTextLayout::GetLocaleName Возвращает имя языкового стандарта текста в указанной позиции. |
IDWriteTextLayout::GetLocaleNameLength Возвращает длину имени языкового стандарта текста в указанной позиции. |
IDWriteTextLayout::GetMaxHeight Возвращает максимальную высоту макета. |
IDWriteTextLayout::GetMaxWidth Возвращает максимальную ширину макета. |
IDWriteTextLayout::GetMetrics Извлекает общие метрики для форматируемой строки. (IDWriteTextLayout.GetMetrics) |
IDWriteTextLayout::GetOverhangMetrics Возвращает свесы (в DIP) макета и все содержащиеся в нем объекты, включая текстовые глифы и встроенные объекты. |
IDWriteTextLayout::GetStrikethrough Получение зачеркивного присутствия текста в указанной позиции. |
IDWriteTextLayout::GetTypography Возвращает параметр оформления текста в указанной позиции. |
IDWriteTextLayout::GetUnderline Возвращает присутствие подчеркивания текста в указанной позиции. |
IDWriteTextLayout::HitTestPoint Приложение вызывает эту функцию, передавая определенное расположение пикселей относительно левого верхнего расположения поля макета, и получает сведения о метриках соответствующего теста нажатия текстовой строки, в которой был выполнен тест нажатия. |
IDWriteTextLayout::HitTestTextPosition Приложение вызывает эту функцию, чтобы получить расположение в пикселях относительно левого верхнего углу поля макета с учетом положения текста и логической стороны позиции. |
IDWriteTextLayout::HitTestTextRange Приложение вызывает эту функцию для получения набора метрик проверки нажатия, соответствующих диапазону позиций текста. Одним из main использования является реализация выделения выделения текстовой строки. |
IDWriteTextLayout::SetDrawingEffect Задает эффект рисования, определяемый приложением. |
IDWriteTextLayout::SetFontCollection Задает коллекцию шрифтов. |
IDWriteTextLayout::SetFontFamilyName Задает имя семейства шрифтов, заканчивающегося значением NULL, для текста в указанном текстовом диапазоне. |
IDWriteTextLayout::SetFontSize Задает размер шрифта в единицах DIP для текста в указанном текстовом диапазоне. |
IDWriteTextLayout::SetFontStretch Задает растяжение шрифта для текста в указанном текстовом диапазоне. |
IDWriteTextLayout::SetFontStyle Задает стиль шрифта для текста в диапазоне текста, заданном структурой DWRITE_TEXT_RANGE. |
IDWriteTextLayout::SetFontWeight Задает вес шрифта для текста в текстовом диапазоне, заданном структурой DWRITE_TEXT_RANGE. |
IDWriteTextLayout::SetInlineObject Задает встроенный объект . |
IDWriteTextLayout::SetLocaleName Задает имя языкового стандарта для текста в указанном текстовом диапазоне. |
IDWriteTextLayout::SetMaxHeight Задает максимальную высоту макета. |
IDWriteTextLayout::SetMaxWidth Задает максимальную ширину макета. |
IDWriteTextLayout::SetStrikethrough Задает зачеркивку для текста в указанном текстовом диапазоне. |
IDWriteTextLayout::SetTypography Задает функции шрифтового оформления для текста в указанном текстовом диапазоне. |
IDWriteTextLayout::SetUnderline Задает подчеркивание для текста в указанном текстовом диапазоне. |
Комментарии
Чтобы получить ссылку на интерфейс IDWriteTextLayout , приложение должно вызвать метод IDWriteFactory::CreateTextLayout , как показано в следующем коде.
// Create a text layout using the text format.
if (SUCCEEDED(hr))
{
RECT rect;
GetClientRect(hwnd_, &rect);
float width = rect.right / dpiScaleX_;
float height = rect.bottom / dpiScaleY_;
hr = pDWriteFactory_->CreateTextLayout(
wszText_, // The string to be laid out and formatted.
cTextLength_, // The length of the string.
pTextFormat_, // The text format to apply to the string (contains font information, etc).
width, // The width of the layout box.
height, // The height of the layout box.
&pTextLayout_ // The IDWriteTextLayout interface pointer.
);
}
Интерфейс IDWriteTextLayout позволяет приложению изменять формат диапазонов текста, которые оно представляет, задается DWRITE_TEXT_RANGE структурой. В следующем примере показано, как задать вес шрифта для текстового диапазона.
// Set the font weight to bold for the first 5 letters.
DWRITE_TEXT_RANGE textRange = {0, 4};
if (SUCCEEDED(hr))
{
hr = pTextLayout_->SetFontWeight(DWRITE_FONT_WEIGHT_BOLD, textRange);
}
IDWriteTextLayout также предоставляет методы для добавления в текст зачеркивных, подчеркивающих и встроенных объектов.
Чтобы нарисовать блок текста, представленный объектом IDWriteTextLayout , Direct2D предоставляет метод ID2D1RenderTarget::D rawTextLayout . Для рисования с помощью пользовательского отрисовщика реализуйте интерфейс IDWriteTextRenderer и вызовите метод IDWriteTextLayout::D raw
DirectWrite и Direct2D
Чтобы нарисовать форматированную строку, представленную объектом IDWriteTextLayout , Direct2D предоставляет метод ID2D1RenderTarget::D rawTextLayout .Другие параметры отрисовки
Для отрисовки с помощью пользовательского отрисовщика используйте метод IDWriteTextLayout::D raw , который принимает интерфейс обратного вызова, производный от IDWriteTextRenderer , в качестве аргумента, как показано в следующем коде.
// Draw the text layout using DirectWrite and the CustomTextRenderer class.
hr = pTextLayout_->Draw(
NULL,
pTextRenderer_, // Custom text renderer.
origin.x,
origin.y
);
IDWriteTextRenderer объявляет методы для рисования глифов выполнения, подчеркивания, зачеркивания и встроенных объектов. Реализация этих методов осуществляется приложением. Создание пользовательского отрисовщика текста позволяет приложению применять дополнительные эффекты при отрисовке текста, например настраиваемую заливку или структуру.
Использование пользовательского отрисовщика текста также позволяет выполнять отрисовку с помощью другой технологии, например GDI.
Требования
Минимальная версия клиента | 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.h |