SetTextJustification
La función SetTextJustification especifica la cantidad de espacio que Windows debe añadir a los caracteres de separación de una cadena de texto. El espacio se añade cuando la aplicación llama a las funciones TextOut o ExtTextOut.
Sintaxis
BOOL SetTextJustification( HDC hdc, // manipulador de contexto de dispositivo int nBreakExtra, // longitud de espacio extra, en unidades lógicas int nBreakCount // número de caracteres espaciosen la línea de texto );
Parámetros
hdc: identifica el contexto de dispositivo.
nBreakExtra: especifica el total de espacio extra, en unidades lógicas, a añadir a la línea de texto. Si el modo de proyección actual no es MM_TEXT, el valor identificado por el parámetro nBreakExtra se transforma y redondea al pixel más cercano.
nBreakCount: especifica el número de caracteres de separación en la línea.
Valor de retorno
Si la función tiene éxito, el valor de retorno es distinto de cero.
Si la función falla, el valor de retorno es cero. Para obtener información adicional sobre el error, llamar a GetLastError.
Observaciones
El carárcter de separación es normalmente el espacio (ASCII 32), pero puede ser definido por una fuente como cualquier otro carácter. Se puede usar la función GetTextMetrics para obtener el carácter de separación de la fuente.
La función TextOut distribuye el espacio extra especificado de forma regular entre los caracteres separadores de la línea.
Siempre se usa la función GetTextExtentPoint32 junto con SetTextJustification. La función GetTextExtentPoint32 calcula la anchura de una línea dada antes de la justificación. Esta anchura debe ser conocida antes de que se pueda calcular un valor de nBreakExtra apropiado.
SetTextJustification se puede usar para justificar una línea que contenga varias cadenas en diferentes fuentes. En ese caso, cada cadena debe ser justificada separadamente.
Ya que se pueden producir errores de redondeo durante la justificación, Windows mantiene un error de ejecución que define el valor actual de error. Cuando se justifica una línea que contiene múltiples ejecuciones, GetTextExtentPoint usa automáticamente ese valor de error cuando calcula la extensión de la siguiente ejecución, permitiendo que TextOut corrija el error en la siguiente ejecución. Después de que cada línea ha sido justificada, ese error debe ser borrado para evitar que sea incorporado en la siguiente línea. El error puede borrarse mediante a una llamada a SetTextJustification con un valor nulo para el parámetro nBreakExtra.