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
Referencia