Partager via


Appareil et unités de conception

Une application peut récupérer les métriques de police d’une police physique uniquement une fois que la police a été sélectionnée dans un contexte d’appareil. Lorsqu’une police est sélectionnée dans un contexte d’appareil, elle est mise à l’échelle pour l’appareil. Les métriques de police spécifiques à l’appareil sont appelées unités d’appareil.

Les métriques portables dans les polices sont appelées unités de conception. Pour s’appliquer à un appareil spécifié, les unités de conception doivent être converties en unités d’appareil. Utilisez la formule suivante pour convertir des unités de conception en unités d’appareil.

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

Les variables de cette formule ont les significations suivantes.

Variable Description
DeviceUnits Spécifie la métrique de police DesignUnits convertie en unités d’appareil. Cette valeur se trouve dans les mêmes unités que la valeur spécifiée pour DeviceResolution.
DesignUnits Spécifie la métrique de police à convertir en unités d’appareil. Cette valeur peut être n’importe quelle métrique de police, y compris la largeur d’un caractère ou la valeur ascendante pour une police entière.
unitsPerEm Spécifie la taille carrée de la police.
PointSize Spécifie la taille de la police, en points. (Un point est égal à 1/72 de pouce.)
DeviceResolution Spécifie le nombre d’unités d’appareil (pixels) par pouce. Les valeurs classiques peuvent être 300 pour une imprimante laser ou 96 pour un écran VGA.

 

Cette formule ne doit pas être utilisée pour reconvertit les unités d’appareil en unités de conception. Les unités d’appareil sont toujours arrondies au pixel le plus proche. L’erreur de arrondi propagée peut devenir très volumineuse, en particulier lorsqu’une application fonctionne avec des tailles d’écran.

Pour demander des unités de conception, créez une police logique dont la hauteur est spécifiée en tant que unitsPerEm. Les applications peuvent récupérer la valeur de unitsPerEm en appelant la fonction EnumFontFamilies et en vérifiant le membre ntmSizeEM de la structure NEWTEXTMETRIC .