Interface IDWriteTextLayout (dwrite.h)

A interface IDWriteTextLayout representa um bloco de texto depois de ter sido totalmente analisada e formatada.

Herança

A interface IDWriteTextLayout herda de IDWriteTextFormat. IDWriteTextLayout também tem estes tipos de membros:

Métodos

A interface IDWriteTextLayout tem esses métodos.

 
IDWriteTextLayout::D etermineMinWidth

Determina a largura mínima possível como a qual o layout pode ser definido sem interrupção de emergência entre os caracteres de palavras inteiras que ocorrem.
IDWriteTextLayout::D raw

Desenha texto usando o contexto de desenho do cliente especificado.
IDWriteTextLayout::GetClusterMetrics

Recupera as propriedades lógicas e as medidas de cada cluster de glifo.
IDWriteTextLayout::GetDrawingEffect

Obtém o efeito de desenho definido pelo aplicativo na posição de texto especificada.
IDWriteTextLayout::GetFontCollection

Obtém a coleção de fontes associada ao texto na posição especificada.
IDWriteTextLayout::GetFontFamilyName

Copia o nome da família de fontes do texto na posição especificada.
IDWriteTextLayout::GetFontFamilyNameLength

Obtenha o comprimento do nome da família de fontes na posição atual.
IDWriteTextLayout::GetFontSize

Obtém a fonte em altura do texto na posição especificada.
IDWriteTextLayout::GetFontStretch

Obtém o trecho de fonte do texto na posição especificada.
IDWriteTextLayout::GetFontStyle

Obtém o estilo da fonte (também conhecido como inclinação) do texto na posição especificada.
IDWriteTextLayout::GetFontWeight

Obtém o peso da fonte do texto na posição especificada.
IDWriteTextLayout::GetInlineObject

Obtém o objeto embutido na posição especificada.
IDWriteTextLayout::GetLineMetrics

Recupera as informações sobre cada linha de texto individual da cadeia de caracteres de texto.
IDWriteTextLayout::GetLocaleName

Copia o nome da localidade do texto na posição especificada.
IDWriteTextLayout::GetLocaleNameLength

Obtém o comprimento do nome da localidade do texto na posição especificada.
IDWriteTextLayout::GetMaxHeight

Obtém a altura máxima do layout.
IDWriteTextLayout::GetMaxWidth

Obtém a largura máxima do layout.
IDWriteTextLayout::GetMetrics

Recupera métricas gerais para a cadeia de caracteres formatada. (IDWriteTextLayout.GetMetrics)
IDWriteTextLayout::GetOverhangMetrics

Retorna as saliências (em DIPs) do layout e todos os objetos contidos nele, incluindo glifos de texto e objetos embutidos.
IDWriteTextLayout::GetStrikethrough

Obtenha a presença de tachado do texto na posição especificada.
IDWriteTextLayout::GetTypography

Obtém a configuração de tipografia do texto na posição especificada.
IDWriteTextLayout::GetUnderline

Obtém a presença sublinhada do texto na posição especificada.
IDWriteTextLayout::HitTestPoint

O aplicativo chama essa função passando um local de pixel específico em relação ao local superior esquerdo da caixa de layout e obtém as informações sobre as métricas de teste de clique correspondente da cadeia de caracteres de texto em que o teste de clique ocorreu.
IDWriteTextLayout::HitTestTextPosition

O aplicativo chama essa função para obter o local do pixel em relação ao canto superior esquerdo da caixa de layout, considerando a posição do texto e o lado lógico da posição.
IDWriteTextLayout::HitTestTextRange

O aplicativo chama essa função para obter um conjunto de métricas de teste de clique correspondentes a um intervalo de posições de texto. Um dos main usos é implementar a seleção de realce da cadeia de caracteres de texto.
IDWriteTextLayout::SetDrawingEffect

Define o efeito de desenho definido pelo aplicativo.
IDWriteTextLayout::SetFontCollection

Define a coleção de fontes.
IDWriteTextLayout::SetFontFamilyName

Define o nome da família de fontes terminada em nulo para texto dentro de um intervalo de texto especificado.
IDWriteTextLayout::SetFontSize

Define o tamanho da fonte em unidades DIP para texto dentro de um intervalo de texto especificado.
IDWriteTextLayout::SetFontStretch

Define o alongamento de fonte para texto dentro de um intervalo de texto especificado.
IDWriteTextLayout::SetFontStyle

Define o estilo da fonte do texto dentro de um intervalo de texto especificado por uma estrutura DWRITE_TEXT_RANGE.
IDWriteTextLayout::SetFontWeight

Define o peso da fonte do texto dentro de um intervalo de texto especificado por uma estrutura de DWRITE_TEXT_RANGE.
IDWriteTextLayout::SetInlineObject

Define o objeto embutido.
IDWriteTextLayout::SetLocaleName

Define o nome da localidade do texto dentro de um intervalo de texto especificado.
IDWriteTextLayout::SetMaxHeight

Define a altura máxima do layout.
IDWriteTextLayout::SetMaxWidth

Define a largura máxima do layout.
IDWriteTextLayout::SetStrikethrough

Define o tachado para texto dentro de um intervalo de texto especificado.
IDWriteTextLayout::SetTypography

Define recursos de tipografia de fonte para texto dentro de um intervalo de texto especificado.
IDWriteTextLayout::SetUnderline

Define o sublinhado do texto dentro de um intervalo de texto especificado.

Comentários

Para obter uma referência à interface IDWriteTextLayout , o aplicativo deve chamar o método IDWriteFactory::CreateTextLayout , conforme mostrado no código a seguir.


// 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.
        );
}


A interface IDWriteTextLayout permite que o aplicativo altere o formato dos intervalos do texto que ele representa, especificados por uma estrutura DWRITE_TEXT_RANGE . O exemplo a seguir mostra como definir o peso da fonte para um intervalo de texto.


// 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 também fornece métodos para adicionar objetos tachados, sublinhados e embutidos ao texto.

Para desenhar o bloco de texto representado por um objeto IDWriteTextLayout , o Direct2D fornece o método ID2D1RenderTarget::D rawTextLayout . Para desenhar usando um renderizador personalizado, implemente uma interface IDWriteTextRenderer e chame o método IDWriteTextLayout::D raw

DirectWrite e Direct2D

Para desenhar uma cadeia de caracteres formatada representada por um objeto IDWriteTextLayout , o Direct2D fornece o método ID2D1RenderTarget::D rawTextLayout .

Outras opções de renderização

Para renderizar usando um renderizador personalizado, use o método IDWriteTextLayout::D raw , que usa uma interface de retorno de chamada derivada de IDWriteTextRenderer como um argumento, conforme mostrado no código a seguir.

// Draw the text layout using DirectWrite and the CustomTextRenderer class.
hr = pTextLayout_->Draw(
        NULL,
        pTextRenderer_,  // Custom text renderer.
        origin.x,
        origin.y
        );


IDWriteTextRenderer declara métodos para desenhar uma execução de glifo, sublinhado, tachado e objetos embutidos. Cabe ao aplicativo implementar esses métodos. A criação de um renderizador de texto personalizado permite que o aplicativo aplique efeitos adicionais ao renderizar texto, como um preenchimento personalizado ou uma estrutura de tópicos.

O uso de um renderizador de texto personalizado também permite renderizar usando outra tecnologia, como a GDI.

Requisitos

   
Cliente mínimo com suporte Windows 7, Windows Vista com SP2 e Atualização de Plataforma para Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 R2, Windows Server 2008 com SP2 e Atualização de Plataforma para Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho dwrite.h

Confira também

IDWriteTextFormat