GetDialogBaseUnits, fonction (winuser.h)

Récupère les unités de base de boîte de dialogue du système, qui sont la largeur et la hauteur moyennes des caractères dans la police système. Pour les boîtes de dialogue qui utilisent la police système, vous pouvez utiliser ces valeurs pour convertir entre les unités de modèle de dialogue, comme spécifié dans les modèles de boîte de dialogue et les pixels. Pour les boîtes de dialogue qui n’utilisent pas la police système, la conversion d’unités de modèle de dialogue en pixels dépend de la police utilisée par la boîte de dialogue.

Pour l’un ou l’autre type de boîte de dialogue, il est plus facile d’utiliser la fonction MapDialogRect pour effectuer la conversion. MapDialogRect prend en compte la police et convertit correctement un rectangle des unités de modèle de boîte de dialogue en pixels.

Syntaxe

long GetDialogBaseUnits();

Valeur de retour

Type : LONG

La fonction retourne les unités de base du dialogue. Le mot de bas ordre de la valeur de retour contient l’unité de base de la boîte de dialogue horizontale, et le mot d’ordre supérieur contient l’unité de base de la boîte de dialogue verticale.

Remarques

L’unité de base horizontale retournée par GetDialogBaseUnits est égale à la largeur moyenne, en pixels, des caractères de la police système ; l’unité de base verticale est égale à la hauteur, en pixels, de la police.

La police système est utilisée uniquement si le modèle de boîte de dialogue ne parvient pas à spécifier une police. La plupart des modèles de boîte de dialogue spécifient une police ; par conséquent, cette fonction n’est pas utile pour la plupart des boîtes de dialogue.

Pour une boîte de dialogue qui n’utilise pas la police système, les unités de base sont la largeur et la hauteur moyennes, en pixels, des caractères de la police de la boîte de dialogue. Vous pouvez utiliser les fonctions GetTextMetrics et GetTextExtentPoint32 pour calculer ces valeurs pour une police sélectionnée. Toutefois, à l’aide de la fonction MapDialogRect , vous pouvez éviter les erreurs qui peuvent se produire si vos calculs diffèrent de ceux effectués par le système.

Chaque unité de base horizontale est égale à 4 unités de modèle de dialogue horizontales ; chaque unité de base verticale est égale à 8 unités de modèle de dialogue verticale. Par conséquent, pour convertir des unités de modèle de dialogue en pixels, utilisez les formules suivantes :


pixelX = MulDiv(templateunitX, baseunitX, 4);
pixelY = MulDiv(templateunitY, baseunitY, 8);

De même, pour convertir des pixels en unités de modèle de dialogue, utilisez les formules suivantes :


templateunitX = MulDiv(pixelX, 4, baseunitX);
templateunitY = MulDiv(pixelY, 8, baseunitY);

Exemples

Pour obtenir un exemple, consultez « Création d’une barre d’outils zone de liste modifiable » dans Utilisation de zones de liste déroulante.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winuser.h (inclure Windows.h)
Bibliothèque User32.lib
DLL User32.dll
Ensemble d’API ext-ms-win-ntuser-dialogbox-l1-1-2 (introduit dans Windows 10, version 10.0.10240)

Voir aussi

Conceptuel

Boîtes de dialogue

MapDialogRect

Référence