Condividi tramite


Unità di progettazione e dispositivo

Un'applicazione può recuperare le metriche dei tipi di carattere per un tipo di carattere fisico solo dopo che il tipo di carattere è stato selezionato in un contesto del dispositivo. Quando un tipo di carattere viene selezionato in un contesto del dispositivo, viene ridimensionato per il dispositivo. Le metriche del tipo di carattere specifiche del dispositivo sono note come unità dispositivo.

Le metriche portabili nei tipi di carattere sono note come unità di progettazione. Per applicare a un dispositivo specificato, le unità di progettazione devono essere convertite in unità dispositivo. Usare la formula seguente per convertire le unità di progettazione in unità dispositivo.

DeviceUnits = (DesignUnits/unitsPerEm) * (PointSize/72) * DeviceResolution

Le variabili in questa formula hanno i significati seguenti.

Variabile Descrizione
DeviceUnits Specifica la metrica del tipo di carattere DesignUnits convertita in unità dispositivo. Questo valore si trova nella stessa unità del valore specificato per DeviceResolution.
DesignUnits Specifica la metrica del tipo di carattere da convertire in unità dispositivo. Questo valore può essere qualsiasi metrica del tipo di carattere, inclusa la larghezza di un carattere o il valore crescente per un intero tipo di carattere.
unitsPerEm Specifica la dimensione quadrata em per il tipo di carattere.
PointSize Specifica le dimensioni del tipo di carattere, in punti. Un punto è uguale a 1/72 di un pollice.
DeviceResolution Specifica il numero di unità dispositivo (pixel) per pollice. I valori tipici possono essere 300 per una stampante laser o 96 per uno schermo VGA.

 

Questa formula non deve essere usata per convertire le unità dispositivo in unità di progettazione. Le unità dispositivo vengono sempre arrotondate al pixel più vicino. L'errore di round-off propagato può diventare molto grande, soprattutto quando un'applicazione usa le dimensioni dello schermo.

Per richiedere unità di progettazione, creare un tipo di carattere logico l'altezza specificata come unitsPerEm. Le applicazioni possono recuperare il valore per unitsPerEm chiamando la funzione EnumFontFamilies e controllando il membro ntmSizeEM della struttura NEWTEXTMETRIC .