Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

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

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
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) pixels1 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

Warning: This article has been translated automatically

Propiedades

Id. de artículo: 125681 - Última revisión: 07/11/2005 19:29:53 - Revisión: 2.3

Microsoft Platform Software Development Kit-January 2000 Edition

  • kbmt kbdlg kbhowto KB125681 KbMtes
Comentarios
="display:none;" onerror="var m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> >&t=">/html>