Fuentes grandes

Post Reply
User avatar
José Luis Sánchez
Posts: 484
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España
Contact:

Fuentes grandes

Post by José Luis Sánchez »

Hola:
Quiero que mis programas tomen automaticamente la fuente de Windows y el tamaño de fuente. Con GetSysFont() puedo recuperar la fuente del sistema, pero ¿ y el tamaño ? Lo puedo hacer a ojo preguntando por LargeFonts() pero me parece una chapuza. Ahora la fuente de mi app la defino así:
::oFont = TFont():New( GetSysFont(), 0, iif(LargeFonts(),-13,-10),, )
pero me gustaría que el tamaño de la fuente fuera la del sistema.

Luego está el tema de los controles pintados a mano que tienen fuente propia, como los TTabs. ¿ Alguien sabe cuales son todos los controles que definen su propia fuente ?

Saludos,
José Luis
User avatar
José Luis Sánchez
Posts: 484
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España
Contact:

Post by José Luis Sánchez »

Olvide decir que si cambias las fuentes de tu sistema por fuentes grandes, la fuente del menú de la ventana principal se cambia automáticamente a fuente grande aunque tengas defina una fuente cualquiera en tu aplicación. ¿ De donde cogen los menús la fuente ?

Gracias de nuevo,
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Jose Luis,

Posiblemente te sirva la función GetTextMetrics() del API.

Los menus no son sino un tipo especializado de ventana, por lo que podrás pedirles su fuente con WM_GETFONT y luego usar GetTextMetrics() también.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
José Luis Sánchez
Posts: 484
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España
Contact:

Post by José Luis Sánchez »

¿ Y un poquito de código sería posible ?

Saludos,
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Jose Luis,

La función GetTextMetrics() usa una estructura TEXTMETRIC que mira todo lo que contiene:

Code: Select all

typedef struct tagTEXTMETRIC { // tm  
    LONG tmHeight; 
    LONG tmAscent; 
    LONG tmDescent; 
    LONG tmInternalLeading; 
    LONG tmExternalLeading; 
    LONG tmAveCharWidth; 
    LONG tmMaxCharWidth; 
    LONG tmWeight; 
    LONG tmOverhang; 
    LONG tmDigitizedAspectX; 
    LONG tmDigitizedAspectY; 
    BCHAR tmFirstChar; 
    BCHAR tmLastChar; 
    BCHAR tmDefaultChar; 
    BCHAR tmBreakChar; 
    BYTE tmItalic; 
    BYTE tmUnderlined; 
    BYTE tmStruckOut; 

    BYTE tmPitchAndFamily; 
    BYTE tmCharSet; 
} TEXTMETRIC; 
habrá que ver que valor es el que necesitas de todos esos.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
José Luis Sánchez
Posts: 484
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España
Contact:

Post by José Luis Sánchez »

Ya lo arreglé.

http://www.avemundi.com

Saludos,
Post Reply