Estructura LOGFONTA (wingdi.h)

La estructura LOGFONT define los atributos de una fuente.

Sintaxis

typedef struct tagLOGFONTA {
  LONG lfHeight;
  LONG lfWidth;
  LONG lfEscapement;
  LONG lfOrientation;
  LONG lfWeight;
  BYTE lfItalic;
  BYTE lfUnderline;
  BYTE lfStrikeOut;
  BYTE lfCharSet;
  BYTE lfOutPrecision;
  BYTE lfClipPrecision;
  BYTE lfQuality;
  BYTE lfPitchAndFamily;
  CHAR lfFaceName[LF_FACESIZE];
} LOGFONTA, *PLOGFONTA, *NPLOGFONTA, *LPLOGFONTA;

Miembros

lfHeight

Alto, en unidades lógicas, de la celda o el carácter de la fuente. El valor de alto del carácter (también conocido como alto em) es el valor de alto de celda de caracteres menos el valor inicial interno. El asignador de fuentes interpreta el valor especificado en lfHeight de la siguiente manera.

Valor Significado
> 0 El asignador de fuentes transforma este valor en unidades de dispositivo y lo coincide con el alto de celda de las fuentes disponibles.
0 El asignador de fuentes usa un valor de alto predeterminado cuando busca una coincidencia.
< 0 El asignador de fuentes transforma este valor en unidades de dispositivo y coincide con su valor absoluto con el alto de caracteres de las fuentes disponibles.
 

Para todas las comparaciones de alto, el asignador de fuentes busca la fuente más grande que no supera el tamaño solicitado.

Esta asignación se produce cuando la fuente se usa por primera vez.

Para el modo de asignación de MM_TEXT, puede usar la fórmula siguiente para especificar un alto para una fuente con un tamaño de punto especificado:


lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);

lfWidth

Ancho medio, en unidades lógicas, de caracteres en la fuente. Si lfWidth es cero, la relación de aspecto del dispositivo se compara con la relación de aspecto de digitalización de las fuentes disponibles para encontrar la coincidencia más cercana, determinada por el valor absoluto de la diferencia.

lfEscapement

Ángulo, en décimos grados, entre el vector de escape y el eje X del dispositivo. El vector de escape es paralelo a la línea base de una fila de texto.

Cuando el modo gráfico se establece en GM_ADVANCED, puede especificar el ángulo de escape de la cadena independientemente del ángulo de orientación de los caracteres de la cadena.

Cuando el modo gráfico se establece en GM_COMPATIBLE, lfEscapement especifica el escape y la orientación. Debe establecer lfEscapement y lfOrientation en el mismo valor.

lfOrientation

Ángulo, en décimos grados, entre la línea base de cada carácter y el eje X del dispositivo.

lfWeight

Peso de la fuente del intervalo entre 0 y 1000. Por ejemplo, 400 es normal y 700 está en negrita. Si este valor es cero, se usa un peso predeterminado.

Los valores siguientes se definen para mayor comodidad.

Valor Peso
FW_DONTCARE 0
FW_THIN 100
FW_EXTRALIGHT 200
FW_ULTRALIGHT 200
FW_LIGHT 300
FW_NORMAL 400
FW_REGULAR 400
FW_MEDIUM 500
FW_SEMIBOLD 600
FW_DEMIBOLD 600
FW_BOLD 700
FW_EXTRABOLD 800
FW_ULTRABOLD 800
FW_HEAVY 900
FW_BLACK 900

lfItalic

Fuente en cursiva si se establece en TRUE.

lfUnderline

Fuente subrayada si se establece en TRUE.

lfStrikeOut

Una fuente de tachado si se establece en TRUE.

lfCharSet

El conjunto de caracteres. Los valores siguientes están predefinidos.

ANSI_CHARSET
BALTIC_CHARSET
CHINESEBIG5_CHARSET
DEFAULT_CHARSET
EASTEUROPE_CHARSET
GB2312_CHARSET
GREEK_CHARSET
HANGUL_CHARSET
MAC_CHARSET
OEM_CHARSET
RUSSIAN_CHARSET
SHIFTJIS_CHARSET
SYMBOL_CHARSET
TURKISH_CHARSET
VIETNAMESE_CHARSET
Edición en coreano de Windows:
JOHAB_CHARSET
Edición de idioma de Oriente Medio de Windows:
ARABIC_CHARSET
HEBREW_CHARSET
Edición de idioma tailandés de Windows:
THAI_CHARSET

El valor OEM_CHARSET especifica un juego de caracteres dependiente del sistema operativo.

DEFAULT_CHARSET se establece en un valor basado en la configuración regional del sistema actual. Por ejemplo, cuando la configuración regional del sistema es inglés (Estados Unidos), se establece como ANSI_CHARSET.

Las fuentes con otros juegos de caracteres pueden existir en el sistema operativo. Si una aplicación usa una fuente con un juego de caracteres desconocido, no debe intentar traducir ni interpretar cadenas que se representan con esa fuente.

Este parámetro es importante en el proceso de asignación de fuentes. Para garantizar resultados coherentes, especifique un juego de caracteres específico. Si especifica un nombre de tipo en el miembro lfFaceName , asegúrese de que el valor lfCharSet coincide con el juego de caracteres del tipo de letra especificado en lfFaceName.

lfOutPrecision

Precisión de salida. La precisión de salida define la precisión de la salida que debe coincidir con el alto, el ancho, la orientación de caracteres, el escape, el tono y el tipo de fuente solicitados. Puede ser uno de los siguientes valores.

Value Significado
OUT_CHARACTER_PRECIS No se usa.
OUT_DEFAULT_PRECIS Especifica el comportamiento predeterminado del asignador de fuentes.
OUT_DEVICE_PRECIS Indica al asignador de fuentes que elija una fuente Device cuando el sistema contenga varias fuentes con el mismo nombre.
OUT_OUTLINE_PRECIS Este valor indica al asignador de fuentes que elija entre TrueType y otras fuentes basadas en esquemas.
OUT_PS_ONLY_PRECIS Indica al asignador de fuentes que elija solo entre fuentes PostScript. Si no hay fuentes PostScript instaladas en el sistema, el asignador de fuentes vuelve al comportamiento predeterminado.
OUT_RASTER_PRECIS Indica al asignador de fuentes que elija una fuente ráster cuando el sistema contenga varias fuentes con el mismo nombre.
OUT_STRING_PRECIS El asignador de fuentes no usa este valor, pero se devuelve cuando se enumeran las fuentes ráster.
OUT_STROKE_PRECIS El asignador de fuentes no usa este valor, pero se devuelve cuando se enumeran TrueType, otras fuentes basadas en esquemas y fuentes vectoriales.
OUT_TT_ONLY_PRECIS Indica al asignador de fuentes que elija solo entre fuentes TrueType. Si no hay fuentes TrueType instaladas en el sistema, el asignador de fuentes vuelve al comportamiento predeterminado.
OUT_TT_PRECIS Indica al asignador de fuentes que elija una fuente TrueType cuando el sistema contenga varias fuentes con el mismo nombre.
 

Las aplicaciones pueden usar los valores OUT_DEVICE_PRECIS, OUT_RASTER_PRECIS, OUT_TT_PRECIS y OUT_PS_ONLY_PRECIS para controlar cómo el asignador de fuentes elige una fuente cuando el sistema operativo contiene más de una fuente con un nombre especificado. Por ejemplo, si un sistema operativo contiene una fuente denominada Symbol en formato raster y TrueType, al especificar OUT_TT_PRECIS obliga al asignador de fuentes a elegir la versión TrueType. Al especificar OUT_TT_ONLY_PRECIS obliga al asignador de fuentes a elegir una fuente TrueType, incluso si debe sustituir una fuente TrueType de otro nombre.

lfClipPrecision

Precisión de recorte. La precisión de recorte define cómo recortar caracteres que están parcialmente fuera de la zona de recorte. Puede ser uno o varios de los valores siguientes.

Para obtener más información sobre la orientación de los sistemas de coordenadas, vea la descripción del parámetro nOrientation .

Valor Significado
CLIP_CHARACTER_PRECIS No se usa.
CLIP_DEFAULT_PRECIS Especifica el comportamiento de recorte predeterminado.
CLIP_DFA_DISABLE Windows XP SP1: Desactiva la asociación de fuentes para la fuente. Tenga en cuenta que no se garantiza que esta marca tenga ningún efecto en ninguna plataforma después de Windows Server 2003.
CLIP_EMBEDDED Debe especificar esta marca para usar una fuente de solo lectura incrustada.
CLIP_LH_ANGLES Cuando se usa este valor, la rotación de todas las fuentes depende de si la orientación del sistema de coordenadas es a la izquierda o a la derecha. Si no se usa, las fuentes del dispositivo siempre giran en sentido contrario a las agujas del reloj, pero la rotación de otras fuentes depende de la orientación del sistema de coordenadas.
CLIP_MASK No se usa.
CLIP_DFA_OVERRIDE Desactiva la asociación de fuentes para la fuente. Esto es idéntico a CLIP_DFA_DISABLE, pero puede tener problemas en algunas situaciones; la marca recomendada que se va a usar es CLIP_DFA_DISABLE.
CLIP_STROKE_PRECIS No se usa en el asignador de fuentes, pero se devuelve cuando se enumeran las fuentes raster, vector o TrueType. Por motivos de compatibilidad, este valor siempre se devuelve al enumerar fuentes.
CLIP_TT_ALWAYS No se usa.

lfQuality

Calidad de salida. La calidad de salida define lo cuidadosamente que la interfaz del dispositivo gráfico (GDI) debe intentar coincidir con los atributos de fuente lógica con los de una fuente física real. Puede ser uno de los siguientes valores.

Value Significado
ANTIALIASED_QUALITY La fuente siempre está suavizada si la fuente lo admite y el tamaño de la fuente no es demasiado pequeño o demasiado grande.
CLEARTYPE_QUALITY Si se establece, el texto se representa (cuando es posible) mediante el método antialiasing ClearType. Vea Comentarios para obtener más información.
DEFAULT_QUALITY La apariencia de la fuente no importa.
DRAFT_QUALITY La apariencia de la fuente es menos importante que cuando se usa PROOF_QUALITY. En el caso de las fuentes de trama GDI, el escalado está habilitado, lo que significa que hay más tamaños de fuente disponibles, pero la calidad puede ser inferior. Las fuentes negrita, cursiva, subrayado y tachado se sintetizan si es necesario.
NONANTIALIASED_QUALITY La fuente nunca está suavizada.
PROOF_QUALITY La calidad de caracteres de la fuente es más importante que la coincidencia exacta de los atributos de fuente lógica. En el caso de las fuentes de trama GDI, el escalado está deshabilitado y se elige la fuente más cercana en tamaño. Aunque es posible que el tamaño de fuente elegido no se asigne exactamente cuando se usa PROOF_QUALITY, la calidad de la fuente es alta y no hay distorsión de la apariencia. Las fuentes negrita, cursiva, subrayado y tachado se sintetizan si es necesario.
 

Si no se selecciona ni ANTIALIASED_QUALITY ni NONANTIALIASED_QUALITY, la fuente se suaviza únicamente si el usuario elige fuentes de pantalla suaves en Panel de control.

lfPitchAndFamily

El tono y la familia de la fuente. Los dos bits de orden bajo especifican el tono de la fuente y pueden ser uno de los valores siguientes.

  • DEFAULT_PITCH
  • FIXED_PITCH
  • VARIABLE_PITCH
Los bits de 4 a 7 del miembro especifican la familia de fuentes y pueden ser uno de los valores siguientes.
  • FF_DECORATIVE
  • FF_DONTCARE
  • FF_MODERN
  • FF_ROMAN
  • FF_SCRIPT
  • FF_SWISS
El valor adecuado se puede obtener mediante el operador Boolean OR para unir una constante de paso con una constante de familia.

Las familias de fuentes describen el aspecto de una fuente de una manera general. Están diseñados para especificar fuentes cuando el tipo de letra exacto deseado no está disponible. Los valores de las familias de fuentes son los siguientes.

Valor Significado
FF_DECORATIVE Fuentes novedades. Old English es un ejemplo.
FF_DONTCARE Use la fuente predeterminada.
FF_MODERN Fuentes con ancho de trazo constante (monoespacio), con o sin serifos. Las fuentes monoespaciales suelen ser modernas. Pica, Elite y CourierNew son ejemplos.
FF_ROMAN Fuentes con ancho de trazo variable (proporcional) y con serifos. MS Serif es un ejemplo.
FF_SCRIPT Fuentes diseñadas para tener un aspecto similar a la escritura a mano. Script y cursiva son ejemplos.
FF_SWISS Fuentes con ancho de trazo variable (proporcional) y sin serifas. MS Sans Serif es un ejemplo.

lfFaceName[LF_FACESIZE]

Cadena terminada en el carácter null que especifica el nombre del tipo de letra de la fuente. La longitud de esta cadena no debe superar los 32 valores TCHAR , incluido el valor NULL de terminación. La función EnumFontFamiliesEx se puede usar para enumerar los nombres de letras de todas las fuentes disponibles actualmente. Si lfFaceName es una cadena vacía, GDI usa la primera fuente que coincide con los demás atributos especificados.

Comentarios

Las situaciones siguientes no admiten el suavizado de contorno ClearType:

  • El texto se representa en una impresora.
  • Mostrar establecido para 256 colores o menos.
  • El texto se representa en un cliente de terminal server.
  • La fuente no es una fuente TrueType ni una fuente OpenType con esquemas TrueType. Por ejemplo, lo siguiente no admite el suavizado clearType: fuentes de tipo 1, fuentes OpenType postscript sin esquemas TrueType, fuentes de mapa de bits, fuentes vectoriales y fuentes de dispositivo.
  • La fuente tiene mapas de bits incrustados optimizados para cualquier tamaño de fuente que contenga los mapas de bits incrustados. Por ejemplo, esto ocurre normalmente en fuentes del Este asiático.

Nota

El encabezado wingdi.h define LOGFONT como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
Encabezado wingdi.h (incluye Windows.h)

Consulte también

CreateFont

CreateFontIndirect

EnumFontFamiliesEx

Estructuras de fuente y texto

Información general sobre fuentes y texto