Struttura TEXTMETRICW (wingdi.h)

La struttura TEXTMETRIC contiene informazioni di base su un tipo di carattere fisico. Tutte le dimensioni vengono specificate in unità logiche; vale a dire, dipendono dalla modalità di mapping corrente del contesto di visualizzazione.

Sintassi

typedef struct tagTEXTMETRICW {
  LONG  tmHeight;
  LONG  tmAscent;
  LONG  tmDescent;
  LONG  tmInternalLeading;
  LONG  tmExternalLeading;
  LONG  tmAveCharWidth;
  LONG  tmMaxCharWidth;
  LONG  tmWeight;
  LONG  tmOverhang;
  LONG  tmDigitizedAspectX;
  LONG  tmDigitizedAspectY;
  WCHAR tmFirstChar;
  WCHAR tmLastChar;
  WCHAR tmDefaultChar;
  WCHAR tmBreakChar;
  BYTE  tmItalic;
  BYTE  tmUnderlined;
  BYTE  tmStruckOut;
  BYTE  tmPitchAndFamily;
  BYTE  tmCharSet;
} TEXTMETRICW, *PTEXTMETRICW, *NPTEXTMETRICW, *LPTEXTMETRICW;

Members

tmHeight

Altezza (salita + discesa) di caratteri.

tmAscent

L'ascente (unità sopra la riga di base) di caratteri.

tmDescent

Discesa (unità sotto la riga di base) di caratteri.

tmInternalLeading

Quantità di valore iniziale (spazio) all'interno dei limiti impostati dal membro tmHeight . I segni di accento e altri caratteri diacritici possono verificarsi in questa area. La finestra di progettazione può impostare questo membro su zero.

tmExternalLeading

Quantità di elementi iniziali aggiuntivi (spazio) che l'applicazione aggiunge tra righe. Poiché questa area non è esterna al tipo di carattere, non contiene contrassegni e non viene modificata dalle chiamate di output di testo in modalità OPAC o TRANSPARENT. La finestra di progettazione può impostare questo membro su zero.

tmAveCharWidth

Larghezza media dei caratteri nel tipo di carattere (in genere definita come larghezza della lettera x ). Questo valore non include l'overhang richiesto per i caratteri grassetto o corsivo.

tmMaxCharWidth

Larghezza del carattere più largo nel tipo di carattere.

tmWeight

Spessore del tipo di carattere.

tmOverhang

Ulteriore larghezza per stringa che è possibile aggiungere ad alcuni tipi di carattere sintetizzati. Quando si sintetizzano alcuni attributi, ad esempio grassetto o corsivo, l'interfaccia del dispositivo grafica (GDI) o un dispositivo può dover aggiungere larghezza a una stringa sia per carattere che per stringa. Ad esempio, GDI rende una stringa grassetto espandendo la spaziatura di ogni carattere e sovrastriccando in base a un valore di offset; in corsivozza un tipo di carattere eseguendo l'shearing della stringa. In entrambi i casi, c'è un overhang oltre la stringa di base. Per le stringhe grassetto, l'overhang è la distanza in base alla quale il overstrike è offset. Per le stringhe corsivo, l'overhang è la quantità superiore del tipo di carattere è incollare la parte inferiore del tipo di carattere.

Il membro tmOverhang consente all'applicazione di determinare la quantità di larghezza del carattere restituita da una chiamata di funzione GetTextExtentPoint32 su un singolo carattere è la larghezza effettiva del carattere e la quantità di larghezza aggiuntiva per stringa. La larghezza effettiva è l'estensione meno lo sporgente.

tmDigitizedAspectX

Aspetto orizzontale del dispositivo per il quale è stato progettato il tipo di carattere.

tmDigitizedAspectY

Aspetto verticale del dispositivo per il quale è stato progettato il tipo di carattere. Il rapporto dei membri tmDigitizedAspectX e tmDigitizedAspectY è il rapporto di aspetto del dispositivo per il quale è stato progettato il tipo di carattere.

tmFirstChar

Valore del primo carattere definito nel tipo di carattere.

tmLastChar

Valore dell'ultimo carattere definito nel tipo di carattere.

tmDefaultChar

Valore del carattere da sostituire per i caratteri non nel tipo di carattere.

tmBreakChar

Valore del carattere che verrà usato per definire interruzioni di parola per la giustificazione del testo.

tmItalic

Specifica un carattere corsivo se è diverso da zero.

tmUnderlined

Specifica un carattere sottolineato se è diverso da zero.

tmStruckOut

Tipo di carattere di strikeout se è diverso da zero.

tmPitchAndFamily

Specifica informazioni sul passo, sulla tecnologia e sulla famiglia di un carattere fisico.

I quattro bit a basso ordine di questo membro specificano informazioni sul passo e sulla tecnologia del tipo di carattere. Una costante viene definita per ognuno dei quattro bit.

Costante Significato
TMPF_FIXED_PITCH Se questo bit è impostato il tipo di carattere è un tipo di carattere di passo variabile. Se questo bit è chiaro, il tipo di carattere è un carattere di passo fisso. Si noti molto attentamente che tali significati sono l'opposto di ciò che implica il nome costante.
TMPF_VECTOR Se questo bit è impostato il tipo di carattere è un tipo di carattere vettore.
TMPF_TRUETYPE Se questo bit è impostato il tipo di carattere è un carattere TrueType.
TMPF_DEVICE Se questo bit è impostato il tipo di carattere è un tipo di carattere del dispositivo.
 

Un'applicazione deve testare attentamente le qualità codificate in questi bit a basso ordine, senza presupposti arbitrari. Ad esempio, oltre ad avere i propri bit impostati, i tipi di carattere TrueType e PostScript impostano il bit di TMPF_VECTOR. Un tipo di carattere bitmap monospace ha tutti questi bit a basso ordine chiaro; un carattere bitmap proporzionale imposta il bit di TMPF_FIXED_PITCH. Un tipo di carattere del dispositivo della stampante Postscript imposta i bit di TMPF_DEVICE, TMPF_VECTOR e TMPF_FIXED_PITCH.

I quattro bit elevati di tmPitchAndFamily designano la famiglia di caratteri del tipo di carattere. Un'applicazione può usare il valore 0xF0 e l'operatore AND bit per mascherare i quattro bit a basso ordine di tmPitchAndFamily, ottenendo così un valore che può essere confrontato direttamente con i nomi della famiglia di caratteri per trovare una corrispondenza identica. Per informazioni sulle famiglie di caratteri, vedere la descrizione della struttura LOGFONT .

tmCharSet

Set di caratteri del tipo di carattere. Il set di caratteri può essere uno dei valori seguenti.

  • 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
Edizione della lingua coreana di Windows:
  • JOHAB_CHARSET
Edizione del linguaggio Middle East di Windows:
  • ARABIC_CHARSET
  • HEBREW_CHARSET
Edizione della lingua thai di Windows:
  • THAI_CHARSET

Commenti

Nota

L'intestazione wingdi.h definisce TEXTMETRIC 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 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 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione wingdi.h (include Windows.h)

Vedi anche

Strutture di tipo carattere e testo

Cenni preliminari su tipi di carattere e testo

GetTextExtentPoint32

GetTextMetrics

LOGFONT