Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

INFO : calcul de la hauteur logique et taille de point d'une police

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 74299
Résumé
Pour créer une police dans l'environnement de graphique de Microsoft Windows ne donnée que la taille du requis point, une application doit calculer la hauteur logique de la police, étant donné que les fonctions CreateFont() et CreateFontIndirect() utilisent unités logiques pour spécifier la hauteur.

Pour décrire une police à l'utilisateur, une application peut calculer point taille une police, donnée sa hauteur. Cet article fournit les formules requis pour effectuer ces calculs pour le mode de mise en correspondance MM_TEXT. Vous devrez dériver une nouvelle équation pour calculer la taille de police en un autre mode de mappage.
Plus d'informations
Pour calculer la hauteur logique, utilisez la formule suivante :
                                Point Size * LOGPIXELSY   height = Internal Leading + -------------------------                                          72				
LOGPIXELSY est le nombre de pixels contenus dans un pouce logique sur le périphérique. Cette valeur est obtenue en appelant la fonction GetDeviceCaps() à l'index LOGPIXELSY. La valeur 72 est importante car un pouce (2,54 cm) contient des 72 points.

Le problème avec ce calcul est qu'il n'est aucune méthode pour déterminer le début interne de la police car elle n'a encore été créée. Pour contourner ce problème, appliquez la variante de la formule suivante :
            -(Point Size * LOGPIXELSY)   height = --------------------------                         72				
cette formule peut également s'écrire comme suit :
   plf->lfHeight = -MulDiv (nPtSize, GetDeviceCaps (hdc, LOGPIXELSY), 72);				
lorsqu'une application appelle l' CreateFont() ou CreateFontIndirect() fonctionne et spécifie une valeur négative pour le paramètre de hauteur, le mappeur de police fournit le plus proche équivalent pour la hauteur de caractère plutôt que la hauteur de cellule. La différence entre la hauteur de cellule et la hauteur de caractère est les espaces d'en-tête interne, comme indiqué par le schéma suivant :
   ----------  <------------------------------   |        |           |- Internal Leading  |   | |   |  |  <---------                    |   | |   |  |        |                       |- Cell Height   | |---|  |        |- Character Height     |   | |   |  |        |                       |   | |   |  |        |                       |   ----------  <------------------------------				
la formule suivante calcule la taille d'une police :
                (Height - Internal Leading) * 72   Point Size = --------------------------------                           LOGPIXELSY				
valeurs la hauteur et interne début proviennent de la structure de données TEXTMETRIC . La valeur LOGPIXELSY est obtenue à partir de la fonction GetDeviceCaps comme indiqué ci-dessus.

Arrondie le calculé point taille à l'entier le plus proche. La fonction Windows MulDiv() arrondit son résultat et est un choix excellent pour effectuer le calcul précédent.
3,00 3.10 win16sdk 4.00 3,50 TrueType

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 74299 - Dernière mise à jour : 11/21/2006 15:47:12 - Révision : 3.2

Microsoft Windows Software Development Kit 3.1, Microsoft Win32 Application Programming Interface

  • kbmt kbinfo KB74299 KbMtfr
Commentaires