Estrutura LOGFONTA (shtypes.h)

Define os atributos de uma fonte.

Sintaxe

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[32];
} LOGFONTA;

Membros

lfHeight

Tipo: LONG

Especifica a altura, em unidades lógicas, da célula ou do caractere do caractere da fonte. O valor de altura do caractere (também conhecido como altura em) é o valor de altura da célula do caractere menos o valor de liderança interna. O mapeador de fontes interpreta o valor especificado em lfHeight da maneira a seguir.

Valor Descrição
> 0 O mapeador de fonte transforma esse valor em unidades de dispositivo e o corresponde à altura da célula das fontes disponíveis.
0 O mapeador de fontes usa um valor de altura padrão quando pesquisa uma correspondência.
< 0 O mapeador de fonte transforma esse valor em unidades de dispositivo e corresponde ao seu valor absoluto em relação à altura do caractere das fontes disponíveis.
 

Para todas as comparações de altura, o mapeador de fonte procura a maior fonte que não excede o tamanho solicitado.

Esse mapeamento ocorre quando a fonte é usada pela primeira vez.

Para o modo de mapeamento de MM_TEXT, você pode usar a fórmula a seguir para especificar uma altura para uma fonte com um determinado tamanho de ponto.

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

em que MulDiv é definido da seguinte maneira:

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

lfWidth

Tipo: LONG

Especifica a largura média, em unidades lógicas, de caracteres na fonte. Se lfWidth não for zero, a taxa de proporção do dispositivo será correspondida à taxa de proporção de digitalização das fontes disponíveis para localizar a correspondência mais próxima, determinada pelo valor absoluto da diferença.

lfEscapement

Tipo: LONG

Especifica o ângulo, em décimos de graus, entre o vetor de escape e o eixo x do dispositivo. O vetor de escape é paralelo à linha base de uma linha de texto.

O membro lfEscapement especifica o escape e a orientação. Você deve definir lfEscapement e lfOrientation com o mesmo valor.

lfOrientation

Tipo: LONG

Especifica o ângulo, em décimos de graus, entre a linha base de cada caractere e o eixo x do dispositivo.

lfWeight

Tipo: LONG

Especifica o peso da fonte no intervalo de 0 a 1000. Por exemplo, 400 é normal e 700 está em negrito. Se esse valor for zero, um peso padrão será usado.

Os valores a seguir são definidos em Wingdi.h para conveniência.

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 uma fonte itálica.

lfUnderline

Tipo: BYTE

TRUE para especificar uma fonte sublinhada.

lfStrikeOut

Tipo: BYTE

TRUE para especificar uma fonte strikeout.

lfCharSet

Tipo: BYTE

Especifica o conjunto de caracteres. Os seguintes valores são 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
 
Janelas tailandesas
THAI_CHARSET
 

O valor OEM_CHARSET especifica um conjunto de caracteres dependente do sistema operacional.

DEFAULT_CHARSET é definido como um valor com base na localidade atual do sistema. Por exemplo, quando a localidade do sistema é inglês (Estados Unidos), o valor é ANSI_CHARSET.

Fontes com outros conjuntos de caracteres podem existir no sistema operacional. Se um aplicativo usa uma fonte com um conjunto de caracteres desconhecido, ele não deve tentar traduzir ou interpretar cadeias de caracteres que são renderizadas com essa fonte.

Esse membro é importante no processo de mapeamento de fontes. Para garantir resultados consistentes, especifique um conjunto de caracteres específico. Se você especificar um nome de face de tipo no membro lfFaceName , verifique se o valor lfCharSet corresponde ao conjunto de caracteres da face de tipo especificado em lfFaceName.

lfOutPrecision

Tipo: BYTE

Especifica a precisão de saída. A precisão de saída define a proximidade com que a saída deve corresponder à altura, largura, orientação do caractere, escape, tom e tipo de fonte da fonte solicitada. Pode ser um dos seguintes valores definidos em Wingdi.h:

Valor Descrição
OUT_DEFAULT_PRECIS Especifica o comportamento padrão do mapeador de fontes.
OUT_RASTER_PRECIS Instrui o mapeador de fontes a escolher uma fonte de varredura quando o sistema contiver várias fontes com o mesmo nome.
OUT_STRING_PRECIS Esse valor não é usado pelo mapeador de fontes, mas é retornado quando fontes de varredura são enumeradas.

lfClipPrecision

Tipo: BYTE

Especifica a precisão de recorte. A precisão de recorte define como cortar caracteres que estão parcialmente fora da área de recorte. Pode ser um ou mais dos seguintes valores definidos em Wingdi.h:

Valor Descrição
CLIP_DEFAULT_PRECIS Especifica o comportamento de recorte padrão.
CLIP_CHARACTER_PRECIS Não usado.
CLIP_STROKE_PRECIS Não é usado pelo mapeador de fontes, mas é retornado quando fontes raster, vector ou TrueType são enumeradas.

lfQuality

Tipo: BYTE

Especifica a qualidade da saída. A qualidade de saída define com que cuidado o GDI deve tentar corresponder os atributos de fonte lógica aos de uma fonte física real. Pode ser um dos seguintes valores definidos em Wingdi.h:

Valor Descrição
ANTIALIASED_QUALITY Habilita a suavização para a fonte. O driver de vídeo deve dar suporte a texto suavizado para que essa configuração funcione.
NONANTIALIASED_QUALITY Força o uso da qualidade do rascunho quando a subchave do registro HKEY_LOCAL_MACHINE\System\GDI\Fontsmoothing está presente.
CLEARTYPE_COMPAT_QUALITY Habilita o texto ClearType para a fonte usando larguras compatíveis. Uma largura compatível produz texto que tem o mesmo espaçamento que o texto não ClearType.
CLEARTYPE_QUALITY Habilita o texto ClearType para a fonte. O driver de exibição deve dar suporte ao texto ClearType para que essa configuração funcione.
DEFAULT_QUALITY A aparência da fonte não importa.
DRAFT_QUALITY Para fontes de varredura GDI, o dimensionamento está habilitado, o que significa que mais tamanhos de fonte estão disponíveis, mas a qualidade pode ser menor. As fontes negrito, itálico, sublinhado e strikeout são sintetizadas, se necessário.

lfPitchAndFamily

Tipo: BYTE

Especifica a inclinação e o grupo da fonte. Os dois bits de ordem baixa especificam a inclinação da fonte e podem ser um dos seguintes valores definidos em Wingdi.h:

  • DEFAULT_PITCH
  • FIXED_PITCH
  • MONO_FONT
  • VARIABLE_PITCH
Os bits 4 a 7 do membro especificam o grupo de fontes e podem ser um dos seguintes valores definidos em Wingdi.h:
  • FF_DECORATIVE
  • FF_DONTCARE
  • FF_MODERN
  • FF_ROMAN
  • FF_SCRIPT
  • FF_SWISS
O valor adequado pode ser obtido usando o operador OR booliano para unir uma constante de tom com uma constante familiar.

Famílias de fontes descrevem a aparência de uma fonte de maneira geral. Elas destinam-se a especificar fontes quando a face de tipo exata desejada não estiver disponível. Os valores para famílias de fontes são os seguintes:

Valor Descrição
FF_DECORATIVE Fontes de novidades, por exemplo, inglês antigo.
FF_DONTCARE Não se importe ou não saiba.
FF_MODERN Fontes com largura de traço constante (monospace), com ou sem serifs. As fontes monospace geralmente são modernas, por exemplo, Pica, Elite e Courier New.
FF_ROMAN Fontes com largura de traço variável (proporcional) e com serifs, por exemplo, Serif.
FF_SCRIPT Fontes projetadas para se parecerem com manuscrito, por exemplo, Script e Cursive.
FF_SWISS Fontes com largura de traço variável (proporcional) e sem serifs, por exemplo, Sans Serif.

lfFaceName[32]

Tipo: TCHAR[LF_FACESIZE]

Especifica uma cadeia de caracteres terminada em nulo que especifica o nome da face de tipo da fonte. O comprimento dessa cadeia de caracteres não deve exceder 32 caracteres, incluindo o caractere nulo de terminação. A função EnumFontFamilies pode ser usada para enumerar os nomes de face de tipo de todas as fontes disponíveis no momento. Se lfFaceName for uma cadeia de caracteres vazia, a GDI usará a primeira fonte que corresponde aos outros atributos especificados.

Comentários

As seguintes situações não dão suporte à suavização ClearType:

  • O texto é renderizado em uma impressora.
  • Tela definida para 256 cores ou menos.
  • O texto é renderizado para um cliente de servidor terminal.
  • A fonte não é uma fonte TrueType ou uma fonte Microsoft OpenType com estruturas de tópicos TrueType. Por exemplo, o seguinte não dá suporte à suavização ClearType: fontes tipo 1, fontes OpenType Postscript sem estruturas de tópicos TrueType, fontes de bitmap, fontes de vetor e fontes de dispositivo.
  • A fonte ajustou bitmaps inseridos para qualquer tamanho de fonte que contenha os bitmaps inseridos. Por exemplo, isso ocorre normalmente em fontes do Leste Asiático.
Essa estrutura apareceu pela primeira vez em Shtypes.idl e Shtypes.h no Windows Vista, para facilitar o uso com membros da interface IVisualProperties . No entanto, a estrutura idêntica é definida em Wingdi.h e Windows.h em versões anteriores do Windows.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho shtypes.h (include Shtypes.h, Dimm.h)

Confira também

IVisualProperties::GetFont

IVisualProperties::SetFont