Struttura LOGFONTA (dimm.h)
Definisce gli attributi di un tipo di carattere.
Sintassi
typedef struct __MIDL___MIDL_itf_dimm_0000_0000_0003 {
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[32];
} LOGFONTA;
Members
lfHeight
Tipo: LONG
Specifica l'altezza, in unità logiche, della cella del carattere del tipo di carattere o del 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 | Descrizione |
---|---|
> 0 | Il mapper del tipo di carattere trasforma questo valore in unità dispositivo e lo confronta con l'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 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, 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
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 tipo di carattere corsivo.
lfUnderline
Tipo: BYTE
TRUE per specificare un tipo di carattere sottolineato.
lfStrikeOut
Tipo: BYTE
TRUE per specificare un tipo di carattere barrato.
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 di sistema correnti. 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 utilizza 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 carattere tipografico nel membro lfFaceName , assicurarsi che il valore lfCharSet corrisponda al set di caratteri del carattere tipografico specificato in lfFaceName.
lfOutPrecision
Tipo: BYTE
Specifica la precisione dell'output. La precisione di output definisce la precisione con 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 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. |
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 di ritaglio predefinito. |
CLIP_CHARACTER_PRECIS | Non usato. |
CLIP_STROKE_PRECIS | Non utilizzato dal mapper del tipo di carattere, ma viene restituito quando vengono enumerati tipi di carattere raster, vector o TrueType. |
lfQuality
Tipo: BYTE
Specifica la qualità dell'output. La qualità dell'output definisce il modo in cui GDI 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 definiti in Wingdi.h:
Valore | Descrizione |
---|---|
ANTIALIASED_QUALITY | Abilita l'antialiasing per il tipo di carattere. Per il funzionamento di questa impostazione, il driver di visualizzazione deve supportare il testo antialiased. |
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 utilizzando 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. Per il funzionamento di questa impostazione, il driver di visualizzazione deve supportare il testo ClearType. |
DEFAULT_QUALITY | L'aspetto del tipo di carattere non è rilevante. |
DRAFT_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. |
lfPitchAndFamily
Tipo: BYTE
Specifica il passo e il gruppo del tipo di carattere. I due bit di ordine basso 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 tipo di carattere in modo generale. Sono destinati a specificare i tipi di carattere quando l'esatto carattere tipografico desiderato non è disponibile. I valori per le famiglie di caratteri sono i seguenti:
Valore | Descrizione |
---|---|
FF_DECORATIVE | Tipi di carattere novità, ad esempio old english. |
FF_DONTCARE | Non importa o non so. |
FF_MODERN | Tipi di carattere con larghezza costante del tratto (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 serif, 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 serif, ad esempio Sans Serif. |
lfFaceName[32]
Tipo: TCHAR[LF_FACESIZE]
Specifica una 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 caratteri, incluso il carattere Null di terminazione. La funzione EnumFontFamilies 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.
Commenti
Le situazioni seguenti non supportano l'anti-aliasing ClearType:
- Il rendering del testo viene eseguito su una stampante.
- Display impostato 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 Microsoft OpenType con contorni TrueType. Ad esempio, le opzioni seguenti non supportano l'anti-aliasing 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 tutte le dimensioni del carattere che contengono le bitmap incorporate. Ad esempio, ciò si verifica comunemente nei tipi di carattere dell'Asia orientale.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Intestazione | dimm.h (include Shtypes.h, Dimm.h) |