Fuentes grandes

Fuentes grandes

Postby José Luis Sánchez » Fri Mar 03, 2006 7:52 am

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

Postby José Luis Sánchez » Fri Mar 03, 2006 7:54 am

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
José Luis Sánchez
 
Posts: 556
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España

Postby Antonio Linares » Fri Mar 03, 2006 9:04 am

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
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby José Luis Sánchez » Fri Mar 03, 2006 2:35 pm

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

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

Postby Antonio Linares » Fri Mar 03, 2006 2:37 pm

Jose Luis,

La función GetTextMetrics() usa una estructura TEXTMETRIC que mira todo lo que contiene:
Code: Select all  Expand view  RUN
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
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby José Luis Sánchez » Wed Mar 08, 2006 5:44 pm

Ya lo arreglé.

http://www.avemundi.com

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 58 guests