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 |