Newsgroup: it.comp.lang.visual-basic
Titolo: Zoom di una PictureBox

Ciao a tutti,
come da subject, sto costruendo un controllo (per adesso è slo un
form) per creare un'Anteprima di stampa personalizzata (se qualcuno è
interessato condividerei volentieri il progetto :-)) diciamo che sono
all'inizio già riesco a creare le varie pagine (con relativa ombra
come in Word) a spostarle in alto e in basso, a destra e a sinistra, a
scriverci sopra (tramite il metodo picture.print ) e quindi a
stamparle. Quel che mi manca è del tutto la funzione di zoom.In
sostanza la domanda è: qualcuno ha del codice da postarmi per fare lo
zoom di una pictureBox sulla qual ci sia "disegnato" del testo tramite
il metodo print? Cioè (se mi fossi spiegato male) quello che mi serve
di più è la trasformazione del testo nella grandezza proporzionale
alla percentuale di zoom, perchè la picturebox, dividendo altezza e
larghezza per 2 è facile da farsi, è il contenuto della picture che
non so ridimensionare.
Chiedo scusa se avessi fatto confusione, sperando di aver spiegato
bene il problema.
Grazie
Robin 

 ha scritto nel messaggio
news:ja4egu4l750d79aa6...@4ax.com...

Ohh .. che bello .. ho giusto fatto una DLL simile .. diciamo per lo stesso
scopo ...
lo zoom non è un problema solo che dipende da come hai archiviato le singole
pagine ...
per esempio se vuoi crerare una picture (pct1) contenete l'immagine di pct2
zoommata al 50% :
    pct1.Cls
    pct1.Width = pct2.Width * Fat / 100
    pct1.Height = pct2.Height * Fat / 100
    pct1.PaintPicture pct2.Image, 0, 0, CInt(pct2.ScaleWidth * Fat / 100),
CInt(pct2.ScaleHeight * Fat / 100)
dove Fat è il fattore di scala (appunto 50)
i problemi comunque sono molti :
1) La PictureBox non contiene i font in nativo, per cui tutti gli oggetti
sono grafici .. e perdi in risoluzione;
2) Zoommando con scala inferiore al 100, capita che perdi delle immagini
(perdi vuol dire che non riesci a vederle, poi non so se esistano ancora o
meno)
3) Lo zoom con scala superiore al 250/300 ti da problemi  .. ma non
chiedermi perchè .. mi da solo errore.
4) Lo zoom è un'operazione pesante per cui .. in base al contenuto delle
pagine .. ci voglio anche 1 o 2 secondi prima di visualizzare la pagina.
5) .. tante altre cose ancora
Che ne dici di studiare qualcosa insieme per produrre un oggetto magari di
libero utilizzo ? (il tutto si intende a tempo perso .. visto che ne ho
davvero poco)
Saluti


Per me va benissimo, e se ci riussciamo lo diamo a chiunque lo voglia
utilizzare, codice compresi (se è per me) :-)
Allora io in questo momento sono a questo punto:
1) C'è un form su cui disegno 2 picture-flat una bianca che è la
pagina e una nera che è l'ombra. (Come word)
2) Posso, tramite una sub, creare a piacimento quante pagine voglio
tramite il metodo load (in pratica creo pagina e ombra in
contemporanea)
3) le posso spostare in basso e in alto per visualizzarle e a destra e
a sinistra tramite due barre di scorrimento
4) le posso stampare 
Per il momento (dato che ho iniziato da pochissimo) gestisco solo il
formato A4 ma gli atri formati non sono di difficile implementazione.
Tramite dei cicli dovrò impostare il caricamento delle varie righe di
testo (a questo proposito ho creato per un altro programma una routine
che riesce a creare delle righe di testo di una lunghezza voluta e
stamparle su form-picture o printer che poi mi torna utile per
stampare il testo sulle varie pagine dell'anteprima)
In ogni caso, collaborerei volentieri, e se vuoi i sorgenti te li
spedisco rapidamente, basta che mi fai una e-mail a questo indirizzo
vaccaroNOSPASM @ NOSPASMkrol.it
(Ovviamente togli gli spazi e i NOSPASM) :-)
Ciao
Giovanni


Per me va benissimo, e se ci riussciamo lo diamo a chiunque lo voglia
