Interfaz IDWriteTextLayout (dwrite.h)

La interfaz IDWriteTextLayout representa un bloque de texto después de que se haya analizado y formateado por completo.

Herencia

La interfaz IDWriteTextLayout hereda de IDWriteTextFormat. IDWriteTextLayout también tiene estos tipos de miembros:

Métodos

La interfaz IDWriteTextLayout tiene estos métodos.

 
IDWriteTextLayout::D etermineMinWidth

Determina el ancho mínimo posible en el que se puede establecer el diseño sin que se produzca una interrupción de emergencia entre los caracteres de palabras completas.
IDWriteTextLayout::D raw

Dibuja texto mediante el contexto de dibujo de cliente especificado.
IDWriteTextLayout::GetClusterMetrics

Recupera las propiedades lógicas y las medidas de cada clúster de glifos.
IDWriteTextLayout::GetDrawingEffect

Obtiene el efecto de dibujo definido por la aplicación en la posición de texto especificada.
IDWriteTextLayout::GetFontCollection

Obtiene la colección de fuentes asociada al texto en la posición especificada.
IDWriteTextLayout::GetFontFamilyName

Copia el nombre de familia de fuentes del texto en la posición especificada.
IDWriteTextLayout::GetFontFamilyNameLength

Obtiene la longitud del nombre de familia de fuentes en la posición actual.
IDWriteTextLayout::GetFontSize

Obtiene la altura em de fuente del texto en la posición especificada.
IDWriteTextLayout::GetFontStretch

Obtiene la extensión de fuente del texto en la posición especificada.
IDWriteTextLayout::GetFontStyle

Obtiene el estilo de fuente (también conocido como pendiente) del texto en la posición especificada.
IDWriteTextLayout::GetFontWeight

Obtiene el peso de fuente del texto en la posición especificada.
IDWriteTextLayout::GetInlineObject

Obtiene el objeto insertado en la posición especificada.
IDWriteTextLayout::GetLineMetrics

Recupera la información sobre cada línea de texto individual de la cadena de texto.
IDWriteTextLayout::GetLocaleName

Obtiene el nombre local del texto de la posición especificada.
IDWriteTextLayout::GetLocaleNameLength

Obtiene la longitud del nombre de configuración regional del texto en la posición especificada.
IDWriteTextLayout::GetMaxHeight

Obtiene el alto máximo del diseño.
IDWriteTextLayout::GetMaxWidth

Obtiene el ancho máximo del diseño.
IDWriteTextLayout::GetMetrics

Recupera las métricas generales de la cadena con formato. (IDWriteTextLayout.GetMetrics)
IDWriteTextLayout::GetOverhangMetrics

Devuelve los voladizos (en DIP) del diseño y todos los objetos contenidos en él, incluidos glifos de texto y objetos insertados.
IDWriteTextLayout::GetStrikethrough

Obtiene la presencia de tachado del texto en la posición especificada.
IDWriteTextLayout::GetTypography

Obtiene el valor de tipografía del texto en la posición especificada.
IDWriteTextLayout::GetUnderline

Obtiene la presencia de subrayado del texto en la posición especificada.
IDWriteTextLayout::HitTestPoint

La aplicación llama a esta función pasando una ubicación de píxel específica en relación con la ubicación superior izquierda del cuadro de diseño y obtiene la información sobre las métricas de prueba de posicionamiento correspondientes de la cadena de texto donde se ha producido la prueba de posicionamiento.
IDWriteTextLayout::HitTestTextPosition

La aplicación llama a esta función para obtener la ubicación de píxeles en relación con la parte superior izquierda del cuadro de diseño según la posición de texto y el lado lógico de la posición.
IDWriteTextLayout::HitTestTextRange

La aplicación llama a esta función para obtener un conjunto de métricas de prueba de posicionamiento correspondientes a un intervalo de posiciones de texto. Uno de los usos principales es implementar la selección de resaltado de la cadena de texto.
IDWriteTextLayout::SetDrawingEffect

Establece el efecto de dibujo definido por la aplicación.
IDWriteTextLayout::SetFontCollection

Establece la colección de fuentes.
IDWriteTextLayout::SetFontFamilyName

Establece el nombre de familia de fuentes terminada en null para el texto dentro de un intervalo de texto especificado.
IDWriteTextLayout::SetFontSize

Establece el tamaño de fuente en unidades DIP para texto dentro de un intervalo de texto especificado.
IDWriteTextLayout::SetFontStretch

Establece la extensión de fuente para el texto dentro de un intervalo de texto especificado.
IDWriteTextLayout::SetFontStyle

Establece el estilo de fuente del texto dentro de un intervalo de texto especificado por una estructura DWRITE_TEXT_RANGE.
IDWriteTextLayout::SetFontWeight

Establece el grosor de fuente del texto dentro de un intervalo de texto especificado por una estructura de DWRITE_TEXT_RANGE.
IDWriteTextLayout::SetInlineObject

Establece el objeto insertado.
IDWriteTextLayout::SetLocaleName

Establece el nombre de la configuración regional del texto dentro de un intervalo de texto especificado.
IDWriteTextLayout::SetMaxHeight

Establece el alto máximo del diseño.
IDWriteTextLayout::SetMaxWidth

Establece el ancho máximo del diseño.
IDWriteTextLayout::SetStrikethrough

Establece tachado para texto dentro de un intervalo de texto especificado.
IDWriteTextLayout::SetTypography

Establece las características de tipografía de fuente para texto dentro de un intervalo de texto especificado.
IDWriteTextLayout::SetUnderline

Establece la esquematización del texto dentro de un intervalo de texto especificado.

Comentarios

Para obtener una referencia a la interfaz IDWriteTextLayout , la aplicación debe llamar al método IDWriteFactory::CreateTextLayout , como se muestra en el código siguiente.


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


La interfaz IDWriteTextLayout permite a la aplicación cambiar el formato de los intervalos del texto que representa, especificado por una estructura DWRITE_TEXT_RANGE . En el ejemplo siguiente se muestra cómo establecer el peso de fuente de un 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 también proporciona métodos para agregar objetos tachados, subrayados e insertados al texto.

Para dibujar el bloque de texto representado por un objeto IDWriteTextLayout , Direct2D proporciona el método ID2D1RenderTarget::D rawTextLayout . Para dibujar mediante un representador personalizado, implemente una interfaz IDWriteTextRenderer y llame al método IDWriteTextLayout::D raw .

DirectWrite y Direct2D

Para dibujar una cadena con formato representada por un objeto IDWriteTextLayout , Direct2D proporciona el método ID2D1RenderTarget::D rawTextLayout .

Otras opciones de representación

Para representar con un representador personalizado, use el método IDWriteTextLayout::D raw , que toma una interfaz de devolución de llamada derivada de IDWriteTextRenderer como argumento, como se muestra en el código siguiente.

// 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 dibujar una ejecución de glifo, subrayado, tachado y objetos insertados. Es necesario que la aplicación implemente estos métodos. La creación de un representador de texto personalizado permite a la aplicación aplicar efectos adicionales al representar texto, como un relleno personalizado o un contorno.

El uso de un representador de texto personalizado también permite representar con otra tecnología, como GDI.

Requisitos

   
Cliente mínimo compatible Windows 7, Windows Vista con SP2 y Platform Update para Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 R2, Windows Server 2008 con SP2 y Actualización de plataforma para Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado dwrite.h

Consulte también

IDWriteTextFormat