Estrutura LOGFONTW (wingdi.h)
A estrutura LOGFONT define os atributos de uma fonte.
Sintaxe
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[LF_FACESIZE];
} LOGFONTW, *PLOGFONTW, *NPLOGFONTW, *LPLOGFONTW;
Membros
lfHeight
A altura, em unidades lógicas, da célula ou 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 no 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 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 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 fórmula a seguir 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, o 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 TRUE.
lfUnderline
Uma fonte sublinhada se definida como TRUE.
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
- JOHAB_CHARSET
- ARABIC_CHARSET
- HEBREW_CHARSET
- THAI_CHARSET
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 que são renderizadas com essa fonte.
Esse parâmetro é importante no processo de mapeamento de fonte. Para garantir resultados consistentes ao criar uma fonte, não especifique OEM_CHARSET ou DEFAULT_CHARSET. 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
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.
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 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. |
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 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 contiver 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 ele precise substituir uma fonte TrueType de outro nome.
lfClipPrecision
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 valores a seguir.
Para obter mais informações sobre a orientação dos 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 fonte para a fonte. Observe que não há garantia de que esse sinalizador tenha qualquer efeito em nenhuma 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 forem usadas, as fontes do dispositivo sempre girarão no sentido anti-horário, mas a rotação de outras fontes dependerá da orientação do sistema de coordenadas. |
CLIP_MASK | Não usado. |
CLIP_DFA_OVERRIDE | Desativa a associação de fonte 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 de dispositivo gráfico) deve tentar corresponder os atributos de fonte lógica aos de uma fonte física real. Pode ser um dos seguintes valores.
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. Confira 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 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. |
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 varredura GDI, o dimensionamento é desabilitado e a fonte mais próxima do tamanho é escolhida. Embora o tamanho da fonte escolhido possa não ser mapeado exatamente quando PROOF_QUALITY é usado, a qualidade da fonte é alta e não há distorção de aparência. As fontes negrito, itálico, sublinhado e strikeout são sintetizadas, se necessário. |
Se nem ANTIALIASED_QUALITY nem NONANTIALIASED_QUALITY estiverem selecionados, a fonte será suavizada somente se o usuário escolher fontes de tela suave em Painel de Controle.
lfPitchAndFamily
O pitch e a família da fonte. Os dois bits de ordem baixa especificam a inclinação da fonte e podem ser um dos valores a seguir.
- DEFAULT_PITCH
- FIXED_PITCH
- VARIABLE_PITCH
- FF_DECORATIVE
- FF_DONTCARE
- FF_MODERN
- FF_ROMAN
- FF_SCRIPT
- FF_SWISS
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 | Significado |
---|---|
FF_DECORATIVE | Fontes de novidade. O 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 o NULL de terminação. 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.
Comentários
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 para 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 qualquer tamanho de fonte que contenha os bitmaps inseridos. Por exemplo, isso ocorre normalmente em fontes do Leste Asiático.
Observação
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 de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Cliente mínimo com suporte | Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP] |
Cabeçalho | wingdi.h (inclua Windows.h) |