Compartilhar via


Estrutura LOGFONTA (wingdi.h)

A estrutura LOGFONT 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[LF_FACESIZE];
} LOGFONTA, *PLOGFONTA, *NPLOGFONTA, *LPLOGFONTA;

Membros

lfHeight

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

Valor Significado
> 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 fonte 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 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 MM_TEXT, você pode usar a seguinte fórmula para especificar uma altura para uma fonte com um tamanho de ponto especificado:


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

lfWidth

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

lfEscapement

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.

Quando o modo gráfico é definido como GM_ADVANCED, você pode especificar o ângulo de escape da cadeia de caracteres independentemente do ângulo de orientação dos caracteres da cadeia de caracteres.

Quando o modo gráfico é definido como GM_COMPATIBLE, lfEscapement especifica o escape e a orientação. Você deve definir lfEscapement e lfOrientation com o mesmo valor.

lfOrientation

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

lfWeight

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

Os valores a seguir são definidos 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

Uma fonte itálica se definida como verdadeiro.

lfUnderline

Uma fonte sublinhada se definida como VERDADEIRO.

lfStrikeOut

Uma fonte de strikeout se definida como TRUE.

lfCharSet

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
  • VIETNAMESE_CHARSET
Edição em idioma coreano do Windows:
  • JOHAB_CHARSET
Edição de linguagem do Oriente Médio do Windows:
  • ARABIC_CHARSET
  • HEBREW_CHARSET
Edição em idioma tailandês do Windows:
  • 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), ela é definida como 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 renderizadas com essa fonte.

Esse parâmetro é importante no processo de mapeamento de fontes. Para garantir resultados consistentes ao criar uma fonte, não especifique OEM_CHARSET ou DEFAULT_CHARSET. Se você especificar um nome de tipo no membro do lfFaceName, verifique se o valor lfCharSet corresponde ao conjunto de caracteres da face de tipo especificada em lfFaceName.

lfOutPrecision

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 valores a seguir.

Valor Significado
OUT_CHARACTER_PRECIS Não usado.
OUT_DEFAULT_PRECIS Especifica o comportamento padrão do mapeador de fontes.
OUT_DEVICE_PRECIS Instrui o mapeador de fontes a escolher uma fonte de dispositivo quando o sistema contiver várias fontes com o mesmo nome.
OUT_OUTLINE_PRECIS Esse valor instrui o mapeador de fontes a escolher entre TrueType e outras fontes baseadas em estrutura de tópicos.
OUT_PS_ONLY_PRECIS Instrui o mapeador de fontes a escolher somente fontes PostScript. Se não houver fontes PostScript instaladas no sistema, o mapeador de fontes retornará ao comportamento padrão.
OUT_RASTER_PRECIS Instrui o mapeador de fontes a escolher uma fonte de raster 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 raster são enumeradas.
OUT_STROKE_PRECIS Esse valor não é usado pelo mapeador de fontes, mas é retornado quando TrueType, outras fontes baseadas em estrutura de tópicos e fontes de vetor são enumeradas.
OUT_TT_ONLY_PRECIS Instrui o mapeador de fontes a escolher somente as fontes TrueType. Se não houver fontes TrueType instaladas no sistema, o mapeador de fontes retornará ao comportamento padrão.
OUT_TT_PRECIS Instrui o mapeador de fontes a escolher uma fonte TrueType quando o sistema contém várias fontes com o mesmo nome.
 

Os aplicativos podem usar os valores OUT_DEVICE_PRECIS, OUT_RASTER_PRECIS, OUT_TT_PRECIS e OUT_PS_ONLY_PRECIS para controlar como o mapeador de fontes escolhe uma fonte quando o sistema operacional contém mais de uma fonte com um nome especificado. Por exemplo, se um sistema operacional contiver uma fonte chamada Symbol no formato raster e TrueType, especificar OUT_TT_PRECIS forçará o mapeador de fontes a escolher a versão TrueType. Especificar OUT_TT_ONLY_PRECIS força o mapeador de fontes a escolher uma fonte TrueType, mesmo que ela precise substituir uma fonte TrueType de outro nome.

lfClipPrecision

A precisão de recorte. A precisão de recorte define como recortar caracteres que estão parcialmente fora da região de recorte. Pode ser um ou mais dos valores a seguir.

Para obter mais informações sobre a orientação de sistemas de coordenadas, consulte a descrição do parâmetro nOrientation .

Valor Significado
CLIP_CHARACTER_PRECIS Não usado.
CLIP_DEFAULT_PRECIS Especifica o comportamento de recorte padrão.
CLIP_DFA_DISABLE Windows XP SP1: Desativa a associação de fontes para a fonte. Observe que esse sinalizador não tem garantia de ter qualquer efeito em qualquer plataforma após o Windows Server 2003.
CLIP_EMBEDDED Você deve especificar esse sinalizador para usar uma fonte somente leitura inserida.
CLIP_LH_ANGLES Quando esse valor é usado, a rotação para todas as fontes depende se a orientação do sistema de coordenadas é canhota ou destro. Se não for usado, as fontes do dispositivo sempre giram no sentido anti-horário, mas a rotação de outras fontes depende da orientação do sistema de coordenadas.
CLIP_MASK Não usado.
CLIP_DFA_OVERRIDE Desativa a associação de fontes para a fonte. Isso é idêntico a CLIP_DFA_DISABLE, mas pode ter problemas em algumas situações; o sinalizador recomendado a ser usado é CLIP_DFA_DISABLE.
CLIP_STROKE_PRECIS Não usado pelo mapeador de fontes, mas é retornado quando fontes raster, vector ou TrueType são enumeradas. Para compatibilidade, esse valor sempre é retornado ao enumerar fontes.
CLIP_TT_ALWAYS Não usado.

lfQuality

A qualidade da saída. A qualidade de saída define com que cuidado a GDI (interface do dispositivo gráfico) deve tentar corresponder os atributos de fonte lógica aos de uma fonte física real. Pode ser um dos valores a seguir.

Valor Significado
ANTIALIASED_QUALITY A fonte sempre será suavizada se a fonte der suporte a ela e o tamanho da fonte não for muito pequeno ou muito grande.
CLEARTYPE_QUALITY Se definido, o texto será renderizado (quando possível) usando o método de suavização ClearType. Consulte Comentários para obter mais informações.
DEFAULT_QUALITY A aparência da fonte não importa.
DRAFT_QUALITY A aparência da fonte é menos importante do que quando PROOF_QUALITY é usado. Para fontes de raster GDI, o dimensionamento está habilitado, o que significa que mais tamanhos de fonte estão disponíveis, mas a qualidade pode ser menor. Fontes em negrito, itálico, sublinhado e strikeout são sintetizadas, se necessário.
NONANTIALIASED_QUALITY A fonte nunca é suavizada.
PROOF_QUALITY A qualidade do caractere da fonte é mais importante do que a correspondência exata dos atributos de fonte lógica. Para fontes de raster GDI, o dimensionamento é desabilitado e a fonte mais próxima do tamanho é escolhida. Embora o tamanho da fonte escolhido não possa ser mapeado exatamente quando PROOF_QUALITY é usado, a qualidade da fonte é alta e não há distorção de aparência. Fontes em negrito, itálico, sublinhado e strikeout são sintetizadas, se necessário.
 

Se nem ANTIALIASED_QUALITY nem NONANTIALIASED_QUALITY estiver selecionado, a fonte será suavizada somente se o usuário escolher fontes de tela suave no Painel de Controle.

lfPitchAndFamily

O tom e a família da fonte. Os dois bits de ordem baixa especificam o tom da fonte e podem ser um dos valores a seguir.

  • DEFAULT_PITCH
  • FIXED_PITCH
  • VARIABLE_PITCH
Os bits 4 a 7 do membro especificam a família de fontes e podem ser um dos valores a seguir.
  • FF_DECORATIVE
  • FF_DONTCARE
  • FF_MODERN
  • FF_ROMAN
  • FF_SCRIPT
  • FF_SWISS
O valor adequado pode ser obtido usando o operador BOOLEAN OR para unir uma constante de tom com uma constante familiar.

As famílias de fontes descrevem a aparência de uma fonte de maneira geral. Elas se destinam 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 Significado
FF_DECORATIVE Fontes de novidade. Inglês antigo é um exemplo.
FF_DONTCARE Use a fonte padrão.
FF_MODERN Fontes com largura de traço constante (monospace), com ou sem serifs. As fontes de monospace geralmente são modernas. Pica, Elite e CourierNew são exemplos.
FF_ROMAN Fontes com largura de traço variável (proporcional) e com serifs. MS Serif é um exemplo.
FF_SCRIPT Fontes projetadas para se parecerem com manuscrito. Script e Cursive são exemplos.
FF_SWISS Fontes com largura de traço variável (proporcional) e sem serifs. MS Sans Serif é um exemplo.

lfFaceName[LF_FACESIZE]

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 valores de TCHAR, incluindo a terminação NULL. A função EnumFontFamiliesEx pode ser usada para enumerar os nomes 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.

Observações

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

  • O texto é renderizado em uma impressora.
  • Conjunto de exibição para 256 cores ou menos.
  • O texto é renderizado em um cliente de servidor de terminal.
  • A fonte não é uma fonte TrueType ou uma fonte 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 todos os tamanhos de fonte que contêm os bitmaps inseridos. Por exemplo, isso ocorre normalmente em fontes do Leste Asiático.

Nota

O cabeçalho wingdi.h define LOGFONT como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP]
servidor com suporte mínimo Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP]
cabeçalho wingdi.h (inclua Windows.h)

Consulte também

CreateFont

CreateFontIndirect

EnumFontFamiliesEx

estruturas de fonte e texto

fontes e visão geral de texto