Newsgroup: it.comp.lang.visual-basic
Titolo: TwipsPerPixel

atroce dubbio:
pensavo che al variare della risoluzione, variasse il valore di
Screen.TwipsPerPixelX e Screen.TwipsPerPixelY, invece pare di no ... allora
a cosa servono?? pensavo che servendomi di Screen.TwipsPerPixelX o
Screen.TwipsPerPixelY potessi convertire una misura da pixel in cm... ma
forse sbaglio?
e se sbaglio come faccio?
grazie
Francesco Mapelli ( 
mape...@tin.it
 )
http://members.xoom.com/Francesco
Mousestats, il contachilometri per il mouse
http://members.xoom.com/mousestats
Sito comune programmatori Visual Basic
http://members.xoom.com/it_lang_vb

 e se sbaglio come faccio?
Qui ci vuole una FAQ. Vediamo se ci riesco.
Il sistama di misura Twips e' adottato da windows per adattare gli oggetti
(Finestre, Label, TextBox, ComboBox....) alla dimensione del Font.
In pratica windows da la possibilita' all'utente di lavorare in diverse
risoluzioni, da 640x480 a 1280x1024 a 1600x1200 (o piu?).
Con risoluzioni alte (tipo 1024x768) e' ovvio che i fonts che vengono usati
sotto 640x480 risulterebbero piccolissimi.
Per risolvere questo problema, la Microsoft permette, oltre che specificare
la risoluzione, di scegliere la dimensione dei font da usare. Se l'utente
sceglie fonts piu' grandi si ha l'effetto di avere a video, a parita' di
dimensioni, caratteri piu' definiti e belli. di contro i Font grandi
sicuramente non starebbero piu' all'interno degli oggetti (Labels, TextBox,
ComboBox....) che erano stati progettati per risoluzioni e font piu'
piccoli.
Se quindi una TextBox sarebbe di dimensioni fisse alta 32 pixel, se si
cambia risoluzione e dimensione base dei fonts le scritte non ci starebbero
piu' nei 32 pixel della TextBox.
Il twips cambia al cambiare delle dimensioni base dai font di windows, di
modo da ottenere un ingrandimento degli oggetti proporzionale
all'ingrandimento dei fonts.
Riassumento, il numero di twips contenuti in un pixel e' in relazione alla
dimensione base dei fonts di windows.
Esempio:
	a 640x480, dimensione font base non selezionabile: 1 pizel = 15 twips
	a 1024,768, dimensioni font piccoli: 1 pizel = 15 twips
	a 1024,768, dimensioni font grandi: 1 pizel = 12 twips
-- 
Ciao
By -MES-   Maronese Ettore
http:\\
ilmes.freeweb.org
(con OCX per stampare i recordset)
Sito Comune di programmatori Visual Basic
http://members.xoom.com/it_lang_vb

dimensione base dei fonts di windows.
sbonk!
se ho capito bene ne consegue che, non c'e' modo di sapere quanti cm e' alta
una  textbox di 32 pixel....
damn...
Francesco Mapelli ( 
mape...@tin.it
 )
http://members.xoom.com/Francesco
Mousestats, il contachilometri per il mouse
http://members.xoom.com/mousestats
Sito comune programmatori Visual Basic
http://members.xoom.com/it_lang_vb

Se quindi una TextBox sarebbe ....
beccato!  ;-)
ciaociao
Francesco

che carino... mi sto facendo un thread da solo...
comunque...
eccovi la risposta...
non e' possibile convertire una misura da pixel in cm non logici!
dal librone di Appleman: "Windows non puo' sapere esattamente quanti pixel
ci sono in un pollice sul video: non ha alcun controllo sulla dimensione o
sulle regolazioni del monitor."
sob!!
ciaociao


 beccato!  ;-)
Nel senso che hai capito come fare a sapere 32 pixel quanti cm sono?
In poche parole:
Se vuoi sapere un centimetro quanti pixel contiene, fai cosi':
Private Sub Form_Load()
    Dim DimMillimetri           As Single
    Dim DimPixel                As Single
    Dim PixelsPerCentimetro     As Single
 
    Me.ScaleMode = vbPixels
    DimPixel = Me.ScaleWidth
    Me.ScaleMode = vbMillimeters
    DimMillimetri = Me.ScaleWidth
    PixelsPerCentimetro = (DimPixel / DimMillimetri) * 10
    Debug.Print "-----------------------"
    Debug.Print "DimPixel=" & DimPixel
    Debug.Print "DimMillimetri=" & DimMillimetri
    Debug.Print "PixelsPerCentimetro=" & PixelsPerCentimetro
End Sub
Puoi applicare questa tecnica anche con l'Printer e Picture (al posto di
"Me" usi "Printer")
-- 
Ciao
By -MES-   Maronese Ettore
http:\\
ilmes.freeweb.org
(con OCX per stampare i recordset)
Sito Comune di programmatori Visual Basic
http://members.xoom.com/it_lang_vb


No, nel senso che il congiuntivo te lo sei dimenticato a casa! :-)))
--
Roal Zanazzi
z...@iol.it