Cómo calcular unidades de base de diálogo con la fuente no basadas en sistema

Seleccione idioma Seleccione idioma
Id. de artículo: 125681 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Resumen

En este artículo muestra cómo calcular la unidad de base de diálogo para el cuadro de diálogo con una fuente distinta de la fuente del sistema en Windows 95. Puede utilizar este cálculo para crear plantillas de cuadro de diálogo en memoria o calcular las dimensiones del cuadro de diálogo.

Más información

Cada plantilla de cuadro de diálogo contiene las medidas que especificar la posición, el ancho y el alto del cuadro de diálogo y los controles que contiene. Estas medidas son independientes de dispositivo, por lo que una aplicación puede utilizar una sola plantilla para crear el mismo cuadro de diálogo todos los tipos de dispositivos de pantalla. Esto garantiza que un cuadro de diálogo tendrá la mismas proporciones y el aspecto en todas las pantallas a pesar de diferentes resoluciones y relaciones de aspecto entre pantallas.

Además, las medidas del cuadro de diálogo aparecen en unidades de base de cuadro de diálogo. Una unidad de base horizontal es igual a un cuarto del ancho del carácter promedio para la fuente del sistema. Una unidad de base vertical es igual a un octavo del alto del carácter promedio para la fuente del sistema. Una aplicación puede recuperar el número de píxeles por unidad base para la presentación actual mediante la función GetDialogBaseUnits. La palabra de orden inferior del valor devuelto de la función GetDialogBaseUnits, contiene las unidades de base horizontales y la palabra de orden superior del valor devuelto de la función GetDialogBaseUnits, contiene las unidades de base verticales.

Con esta información, puede calcular las unidades de base de diálogo de un cuadro de diálogo utilizando la fuente distinta de la fuente del sistema:
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)
				
como fuente de un cuadro de diálogo cambia, el tamaño real y la posición de un control también cambia.

Una unidad de base de cuadro de diálogo es el equivalente al número de píxeles por unidad de cuadro de diálogo siguiente:
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
				
ancho de carácter promedio y el alto de una fuente pueden calcularse como sigue:
hFontOld = SelectObject(hdc,hFont);
GetTextMetrics(hdc,&tm);
GetTextExtentPoint32(hdc,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrst"
            "uvwxyz",52,&size);
avgWidth = (size.cx/26+1)/2;
avgHeight = (WORD)tm.tmHeight;
				
el campo tmAveCharWidth de la estructura TEXTMETRIC sólo se aproxima el ancho de carácter real promedio (normalmente proporciona el ancho de la letra "x") y por lo tanto, se debe calcula el ancho de carácter promedio es true para que coincida con el valor utilizado por el sistema.

Puede utilizar la función MapDialogRect para convertir unidades de cuadro de diálogo en píxeles, pero no hay ninguna función convertirá los píxeles en unidades de cuadro de diálogo. Puede utilizar las fórmulas que se muestra aquí para realizar esta conversión.

Referencias

Para obtener más información sobre este tema, consulte en contacto con el siguiente artículo en Microsoft Knowledge Base:
145994Cómo calcular unidades de cuadro de diálogo al no utilizar la fuente del sistema

Propiedades

Id. de artículo: 125681 - Última revisión: lunes, 11 de julio de 2005 - Versión: 2.3
La información de este artículo se refiere a:
  • Microsoft Platform Software Development Kit-January 2000 Edition sobre las siguientes plataformas
    • Microsoft Windows 95
    • the operating system: Microsoft Windows 2000
Palabras clave: 
kbmt kbdlg kbhowto KB125681 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 125681

Enviar comentarios

 

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