C/Visual C - Pregunta sobre CFontDialog

 
Vista:

Pregunta sobre CFontDialog

Publicado por Juan Vilches (8 intervenciones) el 19/06/2001 17:32:11
Resulta que me he creado un objeto de la clase CFontDialog.

A este cuadro de dialogo le quiero pasar por defecto una fuente, un estilo de fuente, un tamaño, etc.

Para ello le tengo que pasar un elemento LPLOGFONT e inicializar sus variables.

El problema que tengo es el siguiente:

Al inicializar la variable lfHeight para mostrar el tamaño deseado , no obtiene el valor que yo le asigno.

Ej: LPLOGFONT lplf;
lplf->lfHeight = 12;

//Obtiene 9 en lugar de 12.

Tengo que hacer algún tipo de conversión de coordenadas lógicas a coordenadas de dispositivo o algo así?

Por favor, es urgente.

Muchas gracias yyyyy saludos cordiales.

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Problema al inicializar el tamaño de fuente en CFontDialog

Publicado por Alejandro (913 intervenciones) el 26/09/2024 20:39:53
En relación a tu consulta sobre el problema al inicializar el tamaño de fuente en un objeto de la clase CFontDialog, es importante tener en cuenta que la variable `lfHeight` del tipo `LOGFONT` representa la altura de la fuente en unidades lógicas, no en píxeles. Por lo tanto, es posible que necesites realizar una conversión de unidades para obtener el tamaño deseado en píxeles.

Aquí tienes un ejemplo de cómo realizar la conversión de unidades lógicas a píxeles utilizando la función `MulDiv`:

1
2
LPLOGFONT lplf = new LOGFONT;
lplf->lfHeight = MulDiv(12, GetDeviceCaps(GetDC(NULL), LOGPIXELSY), 72);

En este ejemplo, utilizamos la función `MulDiv` para convertir el tamaño de fuente de 12 puntos (72 puntos por pulgada) a píxeles. La función `GetDeviceCaps` se utiliza para obtener la resolución vertical en puntos por pulgada (DPI) del dispositivo de visualización actual.

Es importante tener en cuenta que la conversión de unidades puede variar según la configuración del sistema y el dispositivo de visualización. Por lo tanto, es posible que necesites ajustar la conversión según tus necesidades específicas.

Espero que esta información te sea útil y te ayude a resolver el problema con la inicialización del tamaño de fuente en el objeto CFontDialog. ¡Saludos cordiales, Juan!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar