Struttura LOGFONTA (wingdi.h)
La struttura LOGFONT
Sintassi
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;
Membri
lfHeight
Altezza, in unità logiche, della cella o del carattere del tipo di carattere. Il valore di altezza del carattere (noto anche come altezza em) è il valore di altezza della cella di caratteri meno il valore iniziale interno. Il mapper del tipo di carattere interpreta il valore specificato in lfHeight nel modo seguente.
Valore | Significato |
---|---|
> 0 | Il mapper del tipo di carattere trasforma questo valore in unità dispositivo e lo associa 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 del carattere dei tipi di carattere disponibili. |
Per tutti i confronti di altezza, il mapper cerca il tipo di carattere più grande che non supera le dimensioni richieste.
Questo mapping si verifica quando il tipo di carattere viene utilizzato per la prima volta.
Per la modalità di mapping MM_TEXT, è possibile utilizzare la formula seguente per specificare un'altezza per un tipo di carattere con una dimensione del punto specificata:
lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);
lfWidth
Larghezza media, in unità logiche, di caratteri nel tipo di carattere. Se lfWidth è zero, le proporzioni del dispositivo vengono confrontate con le proporzioni di digitalizzazione dei tipi di carattere disponibili per trovare la corrispondenza più vicina, determinata dal valore assoluto della differenza.
lfEscapement
Angolo, espresso in decimi di gradi, tra il vettore di escape e l'asse x del dispositivo. Il vettore di escape è parallelo alla riga di base di una riga di testo.
Quando la modalità grafica è impostata su GM_ADVANCED, è possibile specificare l'angolo di escape della stringa indipendentemente dall'angolo di orientamento dei caratteri della stringa.
Quando la modalità grafica è impostata su GM_COMPATIBLE, lfEscapement specifica sia l'escape che l'orientamento. È necessario impostare lfEscapement e lfOrientation sullo stesso valore.
lfOrientation
Angolo, espresso in decimi di gradi, tra la linea di base di ogni carattere e l'asse x del dispositivo.
lfWeight
Spessore del tipo di carattere 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 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 di carattere corsivo se impostato su TRUE.
lfUnderline
Carattere sottolineato se impostato su TRUE.
lfStrikeOut
Tipo di carattere barrato se impostato su TRUE.
lfCharSet
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
- VIETNAMESE_CHARSET
- JOHAB_CHARSET
- ARABIC_CHARSET
- HEBREW_CHARSET
- THAI_CHARSET
DEFAULT_CHARSET è impostato su un valore basato sulle impostazioni locali di sistema correnti. Ad esempio, quando le impostazioni locali di sistema sono inglese (Stati Uniti), viene impostata come 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 parametro è importante nel processo di mapping dei caratteri. Per garantire risultati coerenti durante la creazione di un tipo di carattere, non specificare OEM_CHARSET o DEFAULT_CHARSET. Se si specifica un nome tipografico nel membro lfFaceName, assicurarsi che il valore lfCharSet corrisponda al set di caratteri del carattere tipografico specificato in lfFaceName.
lfOutPrecision
Precisione di output. La precisione di output definisce il modo in cui l'output deve corrispondere all'altezza, alla larghezza, all'orientamento dei caratteri, all'escape, al passo e al tipo di carattere del tipo di carattere richiesto. Può essere uno dei valori seguenti.
Valore | Significato |
---|---|
OUT_CHARACTER_PRECIS | Non utilizzato. |
OUT_DEFAULT_PRECIS | Specifica il comportamento predefinito del mapper del carattere. |
OUT_DEVICE_PRECIS | Indica al mapper del carattere di scegliere un tipo di carattere Dispositivo quando il sistema contiene più tipi di carattere con lo stesso nome. |
OUT_OUTLINE_PRECIS | Questo valore indica al mapper del tipo di carattere di scegliere tra TrueType e altri tipi di carattere basati su struttura. |
OUT_PS_ONLY_PRECIS | Indica al mapper di tipi di carattere di scegliere solo i tipi di carattere PostScript. Se nel sistema non sono installati tipi di carattere PostScript, il mapper del tipo di carattere torna al comportamento predefinito. |
OUT_RASTER_PRECIS | Indica al mapper del tipo 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 utilizzato dal mapper del tipo di carattere, ma viene restituito quando vengono enumerati i tipi di carattere raster. |
OUT_STROKE_PRECIS | Questo valore non viene utilizzato dal mapper di caratteri, ma viene restituito quando TrueType, altri tipi di carattere basati su struttura e tipi di carattere vettoriali vengono enumerati. |
OUT_TT_ONLY_PRECIS | Indica al mapper del tipo di carattere di scegliere solo i tipi di carattere TrueType. Se nel sistema non sono installati tipi di carattere TrueType, il mapper del tipo di carattere torna al comportamento predefinito. |
OUT_TT_PRECIS | Indica al mapper del tipo di carattere di scegliere un tipo di carattere TrueType quando il sistema contiene più tipi di carattere con lo stesso nome. |
Le applicazioni possono utilizzare i valori OUT_DEVICE_PRECIS, OUT_RASTER_PRECIS, OUT_TT_PRECIS e OUT_PS_ONLY_PRECIS per controllare il modo in cui il mapper sceglie un tipo di carattere quando il sistema operativo contiene più tipi di carattere con un nome specificato. Ad esempio, se un sistema operativo contiene un tipo di carattere denominato Symbol in formato raster e TrueType, specificando OUT_TT_PRECIS forza il mapper del tipo di carattere a scegliere la versione TrueType. Se si specifica OUT_TT_ONLY_PRECIS forza il mapper del carattere a scegliere un tipo di carattere TrueType, anche se deve sostituire un tipo di carattere TrueType di un altro nome.
lfClipPrecision
Precisione di ritaglio. La precisione di ritaglio definisce come ritagliare i caratteri parzialmente esterni all'area di ritaglio. Può essere uno o più dei valori seguenti.
Per altre informazioni sull'orientamento dei sistemi di coordinate, vedere la descrizione del parametro
Valore | Significato |
---|---|
CLIP_CHARACTER_PRECIS | Non utilizzato. |
CLIP_DEFAULT_PRECIS | Specifica il comportamento di ritaglio predefinito. |
CLIP_DFA_DISABLE | Windows XP SP1: Disattiva l'associazione dei tipi di carattere per il tipo di carattere. Si noti che questo flag non ha alcun effetto su alcuna piattaforma dopo Windows Server 2003. |
CLIP_EMBEDDED | È necessario specificare questo flag per utilizzare un tipo di carattere di sola lettura incorporato. |
CLIP_LH_ANGLES | Quando si utilizza questo valore, la rotazione per tutti i tipi di carattere dipende dal fatto che l'orientamento del sistema di coordinate sia sinistrorso o destrorso. Se non usato, i tipi di carattere del dispositivo ruotano sempre in senso antiorario, ma la rotazione di altri tipi di carattere dipende dall'orientamento del sistema di coordinate. |
CLIP_MASK | Non utilizzato. |
CLIP_DFA_OVERRIDE | Disattiva l'associazione dei tipi di carattere per il tipo di carattere. Questo è identico a CLIP_DFA_DISABLE, ma può avere problemi in alcune situazioni; il flag consigliato da usare è CLIP_DFA_DISABLE. |
CLIP_STROKE_PRECIS | Non utilizzato dal mapper del tipo di carattere, ma viene restituito quando vengono enumerati tipi di carattere raster, vector o TrueType. Per la compatibilità, questo valore viene sempre restituito durante l'enumerazione dei tipi di carattere. |
CLIP_TT_ALWAYS | Non utilizzato. |
lfQuality
Qualità dell'output. La qualità dell'output definisce il modo in cui l'interfaccia GDI (Graphics Device Interface) deve tentare di associare gli attributi del tipo di carattere logico a quelli di un tipo di carattere fisico effettivo. Può essere uno dei valori seguenti.
Valore | Significato |
---|---|
ANTIALIASED_QUALITY | Il tipo di carattere è sempre antialiased se il tipo di carattere lo supporta e le dimensioni del tipo di carattere non sono troppo piccole o troppo grandi. |
CLEARTYPE_QUALITY | Se impostato, il rendering del testo viene eseguito (quando possibile) usando il metodo di antialiasing ClearType. Per altre informazioni, vedere La sezione Osservazioni. |
DEFAULT_QUALITY | L'aspetto del tipo di carattere non è importante. |
DRAFT_QUALITY | L'aspetto del tipo di carattere è meno importante di quando viene utilizzato PROOF_QUALITY. Per i tipi di carattere raster GDI, la scalabilità è abilitata, il che significa che sono disponibili più dimensioni del carattere, ma la qualità potrebbe essere inferiore. I tipi di carattere grassetto, corsivo, sottolineato e barrato vengono sintetizzati, se necessario. |
NONANTIALIASED_QUALITY | Il tipo di carattere non è mai antialiased. |
PROOF_QUALITY | La qualità dei caratteri del tipo di carattere è più importante rispetto alla corrispondenza esatta degli attributi del tipo di carattere logico. Per i tipi di carattere raster GDI, il ridimensionamento è disabilitato e viene scelto il tipo di carattere più vicino alle dimensioni. Anche se la dimensione del carattere scelta potrebbe non essere mappata esattamente quando viene utilizzata PROOF_QUALITY, la qualità del tipo di carattere è elevata e non vi è alcuna distorsione dell'aspetto. I tipi di carattere grassetto, corsivo, sottolineato e barrato vengono sintetizzati, se necessario. |
Se non viene selezionato né ANTIALIASED_QUALITY né NONANTIALIASED_QUALITY, il tipo di carattere è antialiased solo se l'utente sceglie tipi di carattere dello schermo smussati nel Pannello di controllo.
lfPitchAndFamily
Il passo e la famiglia del tipo di carattere. I due bit di ordine basso specificano il passo del tipo di carattere e possono essere uno dei valori seguenti.
- DEFAULT_PITCH
- FIXED_PITCH
- VARIABLE_PITCH
- FF_DECORATIVE
- FF_DONTCARE
- FF_MODERN
- FF_ROMAN
- FF_SCRIPT
- FF_SWISS
Le famiglie di caratteri descrivono l'aspetto di un tipo di carattere in modo generale. Sono destinati a specificare i tipi di carattere quando il carattere tipografico esatto desiderato non è disponibile. I valori per le famiglie di caratteri sono i seguenti.
Valore | Significato |
---|---|
FF_DECORATIVE | Tipi di carattere novità. Vecchio inglese è un esempio. |
FF_DONTCARE | Usa il tipo di carattere predefinito. |
FF_MODERN | Tipi di carattere con larghezza costante del tratto (monospace), con o senza serif. I tipi di carattere monospace sono in genere moderni. Pica, Elite e CourierNew sono esempi. |
FF_ROMAN | Tipi di carattere con larghezza del tratto variabile (proporzionale) e con serifs. MS Serif è un esempio. |
FF_SCRIPT | Tipi di carattere progettati per apparire come la grafia. Script e Cursive sono esempi. |
FF_SWISS | Tipi di carattere con larghezza del tratto variabile (proporzionale) e senza serif. MS Sans Serif è un esempio. |
lfFaceName[LF_FACESIZE]
Stringa con terminazione Null che specifica il nome del carattere tipografico del tipo di carattere. La lunghezza di questa stringa non deve superare i 32 valori TCHAR, inclusa la terminazione NULL. La funzione EnumFontFamiliesEx può essere utilizzata per enumerare i nomi di carattere tipografico 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.
Osservazioni
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 su un client del server terminal.
- Il tipo di carattere non è un tipo di carattere TrueType o un tipo di carattere OpenType con contorni TrueType. Ad esempio, le opzioni seguenti non supportano l'antialiasing ClearType: tipi di carattere Type 1, tipi di carattere OpenType postscript senza contorni TrueType, tipi di carattere bitmap, tipi di carattere vettoriali e tipi di carattere del dispositivo.
- Il tipo di carattere ha ottimizzato bitmap incorporate, per qualsiasi dimensione del carattere che contiene le bitmap incorporate. Ad esempio, questo si verifica comunemente nei tipi di carattere dell'Asia orientale.
Nota
L'intestazione wingdi.h definisce LOGFONT come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 Professional [app desktop | App UWP] |
server minimo supportato | Windows 2000 Server [app desktop | App UWP] |
intestazione |
wingdi.h (include Windows.h) |
Vedere anche
strutture di tipo carattere e testo
panoramica tipi di carattere e testo