 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 20 Jul, 2012 8:20 am Asunto: Tamaño de la fuente |
|
|
Repasando una pregunta que hice (Más sobre el registro de Windows XP) me ha surgido otra duda: ¿Cómo sé el tamaño de la fuente de los elementos del escritorio?
Por ejemplo: Para los cuadros de mensaje yo tengo definida la fuente Arial 9, pero en el registro me parece este valor:
| Cita: | | MessageFont REG_BINARY f4 ff ff ff 00 etc. |
¿Cómo saco los datos que indico a partir de ese valor? Con esto:
| Código: | char buffer[1024];
memset(buffer, '\0', sizeof(buffer));
TRegistry *rRegistro = new TRegistry();
rRegistro->RootKey = HKEY_CURRENT_USER;
rRegistro->OpenKeyReadOnly("Control Panel\\Desktop\\WindowMetrics");
rRegistro->ReadBinaryData("MessageFont", buffer, sizeof(buffer)); |
leo el contenido del registro, peor no sé como convertir esto:
| Cita: | | ôÿÿÿ\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0A\0r\0i\0a\0l\0\0\0B\0l\0a\0c\0k\0\0\0B\0T\0 |
en algo interpretable. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Vie 20 Jul, 2012 11:37 am Asunto: |
|
|
| Angel escribió: | | leo el contenido del registro, peor no sé como convertir esto |
Lo que se guarda ahi es el contenido de la estructura LOGFONTW. Un ejemplo:
| Código: | LOGFONTW lf;
TRegistry* rRegistro = new TRegistry();
rRegistro->OpenKeyReadOnly("Control Panel\\Desktop\\WindowMetrics");
rRegistro->ReadBinaryData("MessageFont", &lf, sizeof(lf));
delete rRegistro;
ShowMessage(lf.lfFaceName);
ShowMessage(-lf.lfHeight * 72 / PixelsPerInch); // Size |
Aunque lo mas apropiado seria leerlo de este otro modo, ya que nunca se sabe si en el futuro Microsoft puede cambiar la forma de guardar este valor en el registro:
| Código: | NONCLIENTMETRICS ncm;
ncm.cbSize = sizeof(NONCLIENTMETRICS);
if (SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, &ncm, 0))
{
ShowMessage(ncm.lfMessageFont.lfFaceName);
ShowMessage(-ncm.lfMessageFont.lfHeight * 72 / PixelsPerInch); // Size
} |
|
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|