Large font

Moderator: Enrico Maria Giordano

Post Reply
User avatar
Marco Turco
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London
Contact:

Large font

Post by Marco Turco »

Salve,
sto lavorando con gli splitter ed ho un problema nel resize in presenza di large font (font di dimensioni maggiori dei classici 96dpi).

Esiste una funzione per sapere se il font di default di Windows è un LargeFont e le dimensioni in dpi ?

Grazie.
Best Regards,

Marco Turco
SOFTWARE XP LLP
User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

Marco,

LargeFonts()


e per sapere tutti i dati del font per default:

oFont := oMainWnd:oFont


oFont:nInpHeight
oFont:nInpWidth
oFont:nWeight
..
..
Pedro Gonzalez
User avatar
Marco Turco
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London
Contact:

Post by Marco Turco »

Grazie.

Però non mi sembra ci sia un sistema per sapere la dimensione in DPI del font, posso solo sapere la dimensione in pixel.

Dato che i font standard sono a 96DPI volevo in presenza di LargeFonts sapere la dimensione del font (in genere è comunque 120DPI) per quindi rapportare in modo corretto le videate.

Al momento bypasso il problema rapportando a 120 in caso di largefonts ma se il cliente si è divertito ad impostare una dimensione intermedia o superiore allora il resize non sarà corretto.

Hai qualche idea per ottenere i DPI ?
Best Regards,

Marco Turco
SOFTWARE XP LLP
User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

Prova questa funzione:

Code: Select all | Expand

#define LOGPIXELSX         88

function DimFont()

   local hDC, nPixelX

   hDC     = CreateDC( "DISPLAY", "", "" )
   nPixelX = GetDeviceCaps( hDC, LOGPIXELSX )

   DeleteDC( hDC )

//   msginfo( nPixelX )

return nPixelX
Pedro Gonzalez
User avatar
Marco Turco
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London
Contact:

Post by Marco Turco »

Funziona. Grazie.

Ho riscontrato che la funzione LargeFonts() di fivewin rileva solo largefont "standard" ossia di dimensione 120% dell'originale, ma non è un problema visto che con la tua funzione posso ricavare la dimensione effettiva.
Best Regards,

Marco Turco
SOFTWARE XP LLP
User avatar
Silvio.Falconi
Posts: 7141
Joined: Thu Oct 18, 2012 7:17 pm
Been thanked: 1 time

Re:

Post by Silvio.Falconi »

pymsoft wrote: Wed Mar 12, 2008 1:00 pm Prova questa funzione:

Code: Select all | Expand

#define LOGPIXELSX         88

function DimFont()

   local hDC, nPixelX

   hDC     = CreateDC( "DISPLAY", "", "" )
   nPixelX = GetDeviceCaps( hDC, LOGPIXELSX )

   DeleteDC( hDC )

//   msginfo( nPixelX )

return nPixelX
scusa come potrei settare la grandezza dei font a seconda dello schermo

esempio

oFont := TFont():New( "TAHOMA", 0, 16,, )
oBold := TFont():New( "TAHOMA", 0, 14,,.t. )
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)
I use : FiveWin for Harbour November 2023 - January 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Post Reply