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 .