Page 1 of 1
Large font
Posted: Tue Mar 11, 2008 4:43 pm
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.
Posted: Tue Mar 11, 2008 5:03 pm
by pymsoft
Marco,
LargeFonts()
e per sapere tutti i dati del font per default:
oFont := oMainWnd:oFont
oFont:nInpHeight
oFont:nInpWidth
oFont:nWeight
..
..
Posted: Tue Mar 11, 2008 5:20 pm
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 ?
Posted: Wed Mar 12, 2008 1:00 pm
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
Posted: Thu Mar 20, 2008 11:44 am
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.
Re:
Posted: Tue Feb 18, 2025 1:42 pm
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. )