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 |