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
- FF_DECORATIVE
- FF_DONTCARE
- FF_MODERN
- FF_ROMAN
- FF_SCRIPT
- FF_SWISS
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.
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) |