Compartir a través de


Estructura LOGFONTW (shtypes.h)

Define los atributos de una fuente.

Sintaxis

typedef struct tagLOGFONTW {
  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;
  WCHAR lfFaceName[32];
} LOGFONTW;

Miembros

lfHeight

Tipo: LONG

Especifica el alto, en unidades lógicas, de la celda de caracteres o 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 Descripción
> 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 determinado.

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

donde MulDiv se define de la siguiente manera:

#define MulDiv(a,b,c)    (((a)*(b))/(c))

lfWidth

Tipo: LONG

Especifica el ancho medio, en unidades lógicas, de caracteres de la fuente. Si lfWidth no 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

Tipo: LONG

Especifica el ángulo, en décimas de grado, 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.

El miembro lfEscapement especifica el escape y la orientación. Debe establecer lfEscapement y lfOrientation en el mismo valor.

lfOrientation

Tipo: LONG

Especifica el ángulo, en décimas de grado, entre cada línea base del carácter y el eje x del dispositivo.

lfWeight

Tipo: LONG

Especifica el grosor de la fuente puede estar en un rango de 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 en Wingdi.h 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

Tipo: BYTE

TRUE para especificar una fuente cursiva.

lfUnderline

Tipo: BYTE

TRUE para especificar una fuente subrayada.

lfStrikeOut

Tipo: BYTE

TRUE para especificar una fuente de tachado.

lfCharSet

Tipo: BYTE

Especifica el juego 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
 
Windows coreano
JOHAB_CHARSET
 
Middle-Eastern Windows
HEBREW_CHARSET
ARABIC_CHARSET
 
Ventanas tailandesas
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), el valor es 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 miembro 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

Tipo: BYTE

Especifica la precisión del resultado. 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 definidos en Wingdi.h:

Valor Descripción
OUT_DEFAULT_PRECIS Especifica el comportamiento predeterminado del asignador de fuentes.
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.

lfClipPrecision

Tipo: BYTE

Especifica la 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 definidos en Wingdi.h:

Valor Descripción
CLIP_DEFAULT_PRECIS Especifica el comportamiento de recorte predeterminado.
CLIP_CHARACTER_PRECIS No se usa.
CLIP_STROKE_PRECIS No se usa en el asignador de fuentes, pero se devuelve cuando se enumeran las fuentes raster, vector o TrueType.

lfQuality

Tipo: BYTE

Especifica la calidad del resultado. La calidad de salida define lo cuidadosamente que el GDI debe intentar hacer coincidir los atributos de fuente lógica con los de una fuente física real. Puede ser uno de los siguientes valores definidos en Wingdi.h:

Valor Descripción
ANTIALIASED_QUALITY Habilita el suavizado de contorno para la fuente. El controlador de pantalla debe admitir texto suavizado para que esta configuración funcione.
NONANTIALIASED_QUALITY Fuerza el uso de la calidad de borrador cuando la subclave del Registro HKEY_LOCAL_MACHINE\System\GDI\Fontsmoothing está presente.
CLEARTYPE_COMPAT_QUALITY Habilita texto ClearType para la fuente mediante anchos compatibles. Un ancho compatible genera texto que tiene el mismo espaciado que el texto que no es ClearType.
CLEARTYPE_QUALITY Habilita texto ClearType para la fuente. El controlador de pantalla debe admitir texto ClearType para que esta configuración funcione.
DEFAULT_QUALITY La apariencia de la fuente no importa.
DRAFT_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.

lfPitchAndFamily

Tipo: BYTE

Especifica el tono y el grupo de la fuente. Los dos bits de orden bajo especifican el tono de la fuente y pueden ser uno de los siguientes valores definidos en Wingdi.h:

  • DEFAULT_PITCH
  • FIXED_PITCH
  • MONO_FONT
  • VARIABLE_PITCH
Los bits de 4 a 7 del miembro especifican el grupo de fuentes y pueden ser uno de los siguientes valores definidos en Wingdi.h:
  • 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 Descripción
FF_DECORATIVE Fuentes de novedad, por ejemplo, inglés antiguo.
FF_DONTCARE No se preocupe o no lo sepa.
FF_MODERN Fuentes con ancho de trazo constante (monoespacio), con o sin serifas. Las fuentes monospace suelen ser modernas, por ejemplo, Pica, Elite y Courier New.
FF_ROMAN Fuentes con ancho de trazo variable (proporcional) y con serifas, por ejemplo, Serif.
FF_SCRIPT Fuentes diseñadas para tener un aspecto similar a la escritura a mano, por ejemplo, Script y Cursive.
FF_SWISS Fuentes con ancho de trazo variable (proporcional) y sin serifas, por ejemplo, Sans Serif.

lfFaceName[32]

Tipo: TCHAR[LF_FACESIZE]

Especifica una cadena terminada en NULL que especifica el nombre del tipo de letra de la fuente. La longitud de esta cadena no debe superar los 32 caracteres, incluido el carácter nulo de terminación. La función EnumFontFamilies se puede usar para enumerar los nombres de letra 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 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 Microsoft OpenType con esquemas TrueType. Por ejemplo, lo siguiente no admite el suavizado de contorno 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.
Esta estructura apareció por primera vez en Shtypes.idl y Shtypes.h en Windows Vista, para facilitar el uso con miembros de la interfaz IVisualProperties . Sin embargo, la estructura idéntica se define en Wingdi.h y Windows.h en versiones anteriores de Windows.

Nota

El encabezado shtypes.h define LOGFONT como un 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

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Encabezado shtypes.h (include Shtypes.h, Dimm.h)

Consulte también

IVisualProperties::GetFont

IVisualProperties::SetFont