Comment faire pour calculer les unités de base de dialogue avec la police non-System-based

Traductions disponibles Traductions disponibles
Numéro d'article: 125681 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Résumé

Cet article montre comment calculer l'unité de base de dialogue pour la boîte de dialogue à l'aide d'une police autre que la police système dans Windows 95. Vous pouvez utiliser ce calcul pour créer des modèles de boîtes de dialogue en mémoire ou calculer les dimensions de boîte de dialogue.

Plus d'informations

Chaque modèle de boîte de dialogue contient les mesures qui spécifient la position, la largeur et la hauteur de la boîte de dialogue et les contrôles qu'il contient. Ces mesures sont indépendantes du périphérique, donc une application peut utiliser un modèle unique pour créer la même boîte de dialogue pour tous les types de périphériques d'affichage. Cela garantit qu'une boîte de dialogue aura les mêmes proportions et aspect sur tous les écrans en dépit des différentes résolutions et les proportions entre les écrans.

En outre, les mesures de boîte de dialogue sont donnés en unités de base de boîte de dialogue. Une unité de base horizontale est égale à un quart de la largeur de caractère moyenne pour la police système. Une unité de base verticale est égale à un huitième de la hauteur de caractère moyenne pour la police système. Une application peut extraire le nombre de pixels par unité de base pour l'affichage en cours à l'aide de la fonction GetDialogBaseUnits. Le mot de poids faible de la valeur de retour, à partir de la fonction GetDialogBaseUnits, contient les unités de base horizontales et le mot de poids fort de la valeur de retour, à partir de la fonction GetDialogBaseUnits, contient les unités de base verticales.

À l'aide de ces informations, vous pouvez calculer les unités de base de dialogue pour une boîte de dialogue à l'aide de la police autre que la police système :
horz pixels == 2 * horz dialog units * (average char width  of dialog font
                        / average char width of system font)
vert pixels == 2 * vert dialog units * (average char height of dialog font
                        / average char height of system font)
				
en tant que police d'une boîte de dialogue change, la taille réelle et la position d'un contrôle change également.

Une unité de base de boîte de dialogue équivaut au nombre de pixels par unité de boîte de dialogue comme suit :
1 horz dialog base unit == (2 * average char width  dialog font / 
                                average char width  system font) pixels
1 vert dialog base unit == (2 * average char height dialog font / 
                                average char height system font) pixels
				
largeur de caractère moyenne et la hauteur d'une police peuvent être calculées comme suit :
hFontOld = SelectObject(hdc,hFont);
GetTextMetrics(hdc,&tm);
GetTextExtentPoint32(hdc,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrst"
            "uvwxyz",52,&size);
avgWidth = (size.cx/26+1)/2;
avgHeight = (WORD)tm.tmHeight;
				
le champ tmAveCharWidth de la structure TEXTMETRIC uniquement est une approximation de la largeur de caractère moyenne réel (généralement il donne la largeur de la lettre «x») et par conséquent, la largeur de caractère moyenne true doit être calculée pour correspondre à la valeur utilisée par le système.

Vous pouvez utiliser la fonction MapDialogRect pour convertir les unités de boîte de dialogue en pixels, mais il n'existe aucune fonction convertit les pixels en unités de boîte de dialogue. Vous pouvez utiliser les formules affichées ici pour effectuer cette conversion.

Références

Pour plus d'informations sur ce sujet, veuillez consulter l'article suivant dans la base de connaissances Microsoft :
145994Comment faire pour calculer les unités de boîte de dialogue lorsque vous utilisez pas la police système

Propriétés

Numéro d'article: 125681 - Dernière mise à jour: lundi 11 juillet 2005 - Version: 2.3
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Platform Software Development Kit-January 2000 Edition sur le système suivant
    • Microsoft Windows 95
    • the operating system: Microsoft Windows 2000
Mots-clés : 
kbmt kbdlg kbhowto KB125681 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: 125681
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.

Envoyer des commentaires

 

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