Struttura LOGFONTW (shtypes.h)

Definisce gli attributi di un tipo di carattere.

Sintassi

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;

Members

lfHeight

Tipo: LONG

Specifica l'altezza, in unità logiche, della cella del carattere del tipo di carattere o del carattere. Il valore dell'altezza del carattere (noto anche come altezza em) è il valore di altezza della cella di caratteri meno il valore interno-iniziale. Il mapper del carattere interpreta il valore specificato in lfHeight nel modo seguente.

Valore Descrizione
> 0 Il mapper del tipo di carattere trasforma questo valore in unità dispositivo e lo corrisponde all'altezza della cella dei tipi di carattere disponibili.
0 Il mapper del tipo di carattere usa un valore di altezza predefinito quando cerca una corrispondenza.
< 0 Il mapper del tipo di carattere trasforma questo valore in unità dispositivo e corrisponde al valore assoluto rispetto all'altezza dei caratteri disponibili.
 

Per tutti i confronti di altezza, il mapper del carattere cerca il tipo di carattere più grande che non supera le dimensioni richieste.

Questo mapping si verifica quando il tipo di carattere viene usato per la prima volta.

Per la modalità di mapping MM_TEXT, è possibile usare la formula seguente per specificare un'altezza per un tipo di carattere con una determinata dimensione del punto.

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

dove MulDiv è definito come segue:

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

lfWidth

Tipo: LONG

Specifica lo spessore medio, in unità logiche, dei caratteri di un tipo di carattere. Se lfWidth non è zero, il rapporto di aspetto del dispositivo viene confrontato con il rapporto di aspetto della digitalizzazione dei tipi di carattere disponibili per trovare la corrispondenza più vicina, determinata dal valore assoluto della differenza.

lfEscapement

Tipo: LONG

Specifica l'angolo, in decimi di grado, tra il vettore di rotazione e l'asse x del dispositivo. Il vettore di escape è parallelo alla riga di base di una riga di testo.

Il membro lfEscapement specifica sia l'escape che l'orientamento. È necessario impostare lfEscapement e lfOrientation sullo stesso valore.

lfOrientation

Tipo: LONG

Specifica l'angolo, in decimi di grado, tra la linea di base di ogni carattere e l'asse x del dispositivo.

lfWeight

Tipo: LONG

Specifica lo spessore del tipo di carattere nell'intervallo compreso tra 0 e 1000. Ad esempio, 400 è normale e 700 è grassetto. Se questo valore è zero, viene usato un peso predefinito.

I valori seguenti sono definiti in Wingdi.h per praticità.

Valore 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 per specificare un carattere corsivo.

lfUnderline

Tipo: BYTE

TRUE per specificare un carattere sottolineato.

lfStrikeOut

Tipo: BYTE

TRUE per specificare un carattere di barratura.

lfCharSet

Tipo: BYTE

Specifica il set di caratteri. I valori seguenti sono predefiniti:

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
 
Finestre thai
THAI_CHARSET
 

Il valore OEM_CHARSET specifica un set di caratteri dipendente dal sistema operativo.

DEFAULT_CHARSET è impostato su un valore basato sulle impostazioni locali del sistema corrente. Ad esempio, quando le impostazioni locali di sistema sono inglese (Stati Uniti), il valore è ANSI_CHARSET.

I tipi di carattere con altri set di caratteri possono esistere nel sistema operativo. Se un'applicazione usa un tipo di carattere con un set di caratteri sconosciuto, non deve tentare di tradurre o interpretare stringhe di cui viene eseguito il rendering con tale tipo di carattere.

Questo membro è importante nel processo di mapping dei caratteri. Per garantire risultati coerenti, specificare un set di caratteri specifico. Se si specifica un nome di tipoface nel membro lfFaceName , assicurarsi che il valore lfCharSet corrisponda al set di caratteri del carattere specificato in lfFaceName.

lfOutPrecision

Tipo: BYTE

Specifica la precisione dell'output. La precisione di output definisce il modo in cui l'output deve corrispondere all'altezza, alla larghezza, all'orientamento del carattere, all'orientamento del carattere, all'escape, al passo e al tipo di carattere richiesto. Può essere uno dei valori seguenti definiti in Wingdi.h:

Valore Descrizione
OUT_DEFAULT_PRECIS Specifica il comportamento predefinito del mapper del tipo di carattere.
OUT_RASTER_PRECIS Indica al mapper di carattere di scegliere un tipo di carattere raster quando il sistema contiene più tipi di carattere con lo stesso nome.
OUT_STRING_PRECIS Questo valore non viene usato dal mapper del tipo di carattere, ma viene restituito quando vengono enumerati i tipi di carattere raster.

lfClipPrecision

Tipo: BYTE

Specifica la precisione del ritaglio. La precisione di ritaglio definisce come ritagliare i caratteri parzialmente esterni all'area di ritaglio. Può essere uno o più dei valori seguenti definiti in Wingdi.h:

Valore Descrizione
CLIP_DEFAULT_PRECIS Specifica il comportamento predefinito di ritaglio.
CLIP_CHARACTER_PRECIS Non usato.
CLIP_STROKE_PRECIS Non usato dal mapper del tipo di carattere, ma viene restituito quando vengono enumerati i tipi di carattere raster, vector o TrueType.

lfQuality

Tipo: BYTE

Specifica la qualità dell'output. La qualità dell'output definisce la modalità con cui il GDI deve tentare di corrispondere agli attributi del tipo di carattere logico a quelli di un carattere fisico effettivo. Può essere uno dei valori seguenti definiti in Wingdi.h:

Valore Descrizione
ANTIALIASED_QUALITY Abilita l'antialiasing per il tipo di carattere. Il driver di visualizzazione deve supportare testo antialiased per il funzionamento di questa impostazione.
NONANTIALIASED_QUALITY Forza l'uso della qualità bozza quando è presente la sottochiave del Registro di sistema HKEY_LOCAL_MACHINE\System\GDI\Fontsmoothing .
CLEARTYPE_COMPAT_QUALITY Abilita il testo ClearType per il tipo di carattere usando larghezze compatibili. Una larghezza compatibile produce testo con la stessa spaziatura del testo non ClearType.
CLEARTYPE_QUALITY Abilita il testo ClearType per il tipo di carattere. Il driver di visualizzazione deve supportare il testo ClearType per l'utilizzo di questa impostazione.
DEFAULT_QUALITY L'aspetto del tipo di carattere non è importante.
DRAFT_QUALITY Per i tipi di carattere raster GDI, la scalabilità è abilitata, il che significa che sono disponibili più dimensioni dei tipi di carattere, ma la qualità potrebbe essere inferiore. I tipi di carattere grassetto, corsivo, sottolineatura e strikeout vengono sintetizzati se necessario.

lfPitchAndFamily

Tipo: BYTE

Specifica il passo e il gruppo del tipo di carattere. I due bit a basso ordine specificano il passo del tipo di carattere e possono essere uno dei valori seguenti definiti in Wingdi.h:

  • DEFAULT_PITCH
  • FIXED_PITCH
  • MONO_FONT
  • VARIABLE_PITCH
Bit da 4 a 7 del membro specificano il gruppo di caratteri e possono essere uno dei valori seguenti definiti in Wingdi.h:
  • FF_DECORATIVE
  • FF_DONTCARE
  • FF_MODERN
  • FF_ROMAN
  • FF_SCRIPT
  • FF_SWISS
Il valore appropriato può essere ottenuto usando l'operatore OR booleano per aggiungere una costante di passo a una costante della famiglia.

Le famiglie di caratteri descrivono l'aspetto di un carattere in modo generale. Sono destinati a specificare i tipi di carattere quando l'esatto carattere di tipo desiderato non è disponibile. I valori per le famiglie di caratteri sono i seguenti:

Valore Descrizione
FF_DECORATIVE Tipi di carattere di novità, ad esempio Old English.
FF_DONTCARE Non importare o non sapere.
FF_MODERN Tipi di carattere con larghezza del tratto costante (monospace), con o senza serifs. I tipi di carattere Monospace sono in genere moderni, ad esempio Pica, Elite e Courier New.
FF_ROMAN Tipi di carattere con larghezza del tratto variabile (proporzionale) e con serifs, ad esempio Serif.
FF_SCRIPT I tipi di carattere progettati per avere un aspetto simile alla grafia, ad esempio Script e Cursive.
FF_SWISS Tipi di carattere con larghezza del tratto variabile (proporzionale) e senza serifs, ad esempio Sans Serif.

lfFaceName[32]

Tipo: TCHAR[LF_FACESIZE]

Specifica una stringa con terminazione null che specifica il nome del carattere di tipo. La lunghezza di questa stringa non deve superare i 32 caratteri, incluso il carattere null terminante. La funzione EnumFontFamilies può essere usata per enumerare i nomi di carattere tipizzato di tutti i tipi di carattere attualmente disponibili. Se lfFaceName è una stringa vuota, GDI usa il primo tipo di carattere corrispondente agli altri attributi specificati.

Commenti

Le situazioni seguenti non supportano l'antialiasing ClearType:

  • Il rendering del testo viene eseguito su una stampante.
  • Visualizzazione impostata per 256 colori o meno.
  • Il rendering del testo viene eseguito in un client del server terminale.
  • Il carattere non è un carattere TrueType o un tipo di carattere Microsoft OpenType con contorni TrueType. Ad esempio, le seguenti non supportano l'antialiasing ClearType: tipi di carattere 1, tipi di carattere OpenType postscript senza contorni TrueType, tipi di carattere bitmap, tipi di carattere vettoriale e tipi di carattere del dispositivo.
  • Il tipo di carattere ha ottimizzato le bitmap incorporate, per qualsiasi dimensione del tipo di carattere che contiene le bitmap incorporate. Ad esempio, questo si verifica comunemente nei tipi di carattere asiatici orientali.
Questa struttura è apparsa prima in Shtypes.idl e Shtypes.h in Windows Vista, per semplificare l'uso con i membri dell'interfaccia IVisualProperties . Tuttavia, la struttura identica è definita in Wingdi.h e Windows.h nelle versioni precedenti di Windows.

Nota

L'intestazione shtypes.h definisce LOGFONT come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Intestazione shtypes.h (include Shtypes.h, Dimm.h)

Vedi anche

IVisualProperties::GetFont

IVisualProperties::SetFont