Fuentes grandes

Post Reply
User avatar
José Luis Sánchez
Posts: 556
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: 556
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: 42597
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 40 times
Been thanked: 86 times
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: 556
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: 42597
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 40 times
Been thanked: 86 times
Contact:

Post by Antonio Linares »

Jose Luis,

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

Code: Select all | Expand

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: 556
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