Интерфейс 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

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

IDWriteTextFormat