Comment faire pour déterminer le paramètre de taille de police

Traductions disponibles Traductions disponibles
Numéro d'article: 137556 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Agrandir tout | Réduire tout

Résumé

Le code dans cet article montre comment utiliser les commandes de la bibliothèque foxtools.fll pour appeler des fonctions (API) pour déterminer si la session en cours de Windows est à l'aide de petites ou grandes polices interface de programmation d'application Microsoft Windows. Les fonctions API suivantes sont utilisées :
GetDC()
GetDeviceCaps()
ReleaseDC()
				

Plus d'informations

Le programme charge tout d'abord la bibliothèque de foxtools.fll est fourni avec FoxPro for Windows. Puis il initialise certaines variables et récupère le handle pour le périphérique d'affichage. Ensuite, il appelle la fonction GetDeviceCaps demandant le nombre de pixels par pouce logique le long de la largeur d'affichage et la hauteur. Si le nombre de pixels est égal à 96, Windows est en cours d'exécution avec des petites polices. Si le nombre de pixels est égal à 120, Windows est en cours d'exécution avec grandes polices. Le programme puis libère le handle vers le périphérique d'affichage et la bibliothèque.
SET LIBRARY TO SYS(2004) + "FOXTOOLS.FLL" ADDITIVE

* create variables to pass index to GetDeviceCaps()
* this value cane be found in the WINGDI.H file

LOGPIXELSX = 88
LOGPIXELSY = 90

* get the handle to the device context

lnGetDC = RegFN("GetDC","I","I")
lnHDC = CallFN(lnGetDC,0)

* get the number of pixels per logical inch

lnGetLogPix = RegFN("GetDeviceCaps","II","I")
lnLogPixX = CallFN(lnGetLogPix,lnHDC,LOGPIXELSX)
lnLogPixY = CallFN(lnGetLogPix,lnHDC,LOGPIXELSY)

* determine if small or large fonts, either lnLogPixX or
* lnLogPixY may be used to test for the values 96 or 120

IF lnLogPixX < 96
  WAIT WINDOW "Windows is using smaller than Small Fonts"   
ELSE IF InLogPixX = 96
  WAIT WINDOW "Windows is using Small Fonts"   
ELSE IF InLogPixX < 120
  WAIT WINDOW "Windows is using between Small Fonts and Large Fonts"
ELSE IF IF lnLogPixX = 120
  WAIT WINDOW "Windows is using Large Fonts"
ELSE
  WAIT WINDOW "Windows is using larger than Large Fonts"
ENDIF

* release the handle to the device context

lnRelease = RegFN("ReleaseDC","II","I")
= CallFN(lnRelease,0,lnHDC)

* release the FOXTOOLS.FLL library

RELEASE LIBRARY SYS(2004) + "FOXTOOLS.FLL"
				

Références

Kit de développement logiciel Microsoft Windows, «de référence Guide du programmeur, volume 2: fonctions, "pages 350-354, 785.

Foxtools.wri situé dans le répertoire C:\Fpw26\Goodies\Foxtools.

Wingdi.h situé dans le répertoire de C:\C700\Include

Propriétés

Numéro d'article: 137556 - Dernière mise à jour: samedi 22 février 2014 - Version: 2.2
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft FoxPro 2.5b
  • Microsoft FoxPro 2.5a
  • Microsoft FoxPro 2.5b
  • Microsoft FoxPro 2.6 Édition standard
  • Microsoft FoxPro 2.6a Édition standard
Mots-clés : 
kbnosurvey kbarchive kbmt kbfont kbhowto KB137556 KbMtfr
Traduction automatique
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: 137556
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com