Share via


Función GetDialogBaseUnits (winuser.h)

Recupera las unidades base del cuadro de diálogo del sistema, que son el ancho medio y alto de caracteres en la fuente del sistema. Para los cuadros de diálogo que usan la fuente del sistema, puede usar estos valores para convertir entre unidades de plantilla de diálogo, como se especifica en plantillas de cuadro de diálogo y píxeles. Para los cuadros de diálogo que no usan la fuente del sistema, la conversión de unidades de plantilla de diálogo a píxeles depende de la fuente utilizada por el cuadro de diálogo.

Para cualquier tipo de cuadro de diálogo, es más fácil usar la función MapDialogRect para realizar la conversión. MapDialogRect tiene en cuenta la fuente y convierte correctamente un rectángulo de unidades de plantilla de diálogo en píxeles.

Sintaxis

long GetDialogBaseUnits();

Valor devuelto

Tipo: LONG

La función devuelve las unidades base del cuadro de diálogo. La palabra de orden inferior del valor devuelto contiene la unidad base del cuadro de diálogo horizontal y la palabra de orden superior contiene la unidad base del cuadro de diálogo vertical.

Comentarios

La unidad base horizontal devuelta por GetDialogBaseUnits es igual al ancho medio, en píxeles, de los caracteres de la fuente del sistema; la unidad base vertical es igual al alto, en píxeles, de la fuente.

La fuente del sistema solo se usa si la plantilla del cuadro de diálogo no puede especificar una fuente. La mayoría de las plantillas de cuadro de diálogo especifican una fuente; como resultado, esta función no es útil para la mayoría de los cuadros de diálogo.

Para un cuadro de diálogo que no usa la fuente del sistema, las unidades base son el ancho y alto promedio, en píxeles, de los caracteres de la fuente del diálogo. Puede usar las funciones GetTextMetrics y GetTextExtentPoint32 para calcular estos valores para una fuente seleccionada. Sin embargo, mediante el uso de la función MapDialogRect , puede evitar errores que podrían producirse si los cálculos difieren de los realizados por el sistema.

Cada unidad base horizontal es igual a 4 unidades de plantilla de cuadros de diálogo horizontales; cada unidad base vertical es igual a 8 unidades de plantilla de cuadro de diálogo vertical. Por lo tanto, para convertir unidades de plantilla de diálogo en píxeles, use las fórmulas siguientes:


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

De forma similar, para convertir de píxeles a unidades de plantilla de diálogo, use las siguientes fórmulas:


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

Ejemplos

Para obtener un ejemplo, vea "Crear una barra de herramientas de cuadro combinado" en Usar cuadros combinados.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluir Windows.h)
Library User32.lib
Archivo DLL User32.dll
Conjunto de API ext-ms-win-ntuser-dialogbox-l1-1-2 (introducido en Windows 10, versión 10.0.10240)

Consulte también

Conceptual

Cuadros de diálogo

MapDialogRect

Referencia