Condividi tramite


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
I 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 corretto può essere ottenuto usando l'operatore OR booleano per unire una costante di passo con una costante della famiglia.

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.
Questa struttura è apparsa per la prima volta in Shtypes.idl e Shtypes.h in Windows Vista, per facilitare l'uso con i membri dell'interfaccia IVisualProperties . Tuttavia, la struttura identica è definita in Wingdi.h e Windows.h nelle versioni precedenti di Windows.

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)

Vedi anche

IVisualProperties::GetFont

IVisualProperties::SetFont