Newsgroup: it.comp.lang.visual-basic
Titolo: [Lunghino] Spostamento immagine in Picture Box

Ho creato una applicazione che disegna su una mappa le posizioni di alcuni
"centri" (layer 1) e una serie di informazioni che li riguardano sottoforma
di colori o altri disegni (layer 2). In una prima release mi accingevo a
ridisegnare tutto (conpreso quello che non rientrava nella finestra visibile
della Picture Box) ad ogni evento, fosse esso uno spostamento/zoom o un
cambiamento della visualizzazione (che quindi lasciava immutato il layer 1
per coinvolgere solo il 2). Ovviamente questa operazione è particolarmente
onerosa, e vorrei snellirla. Per il layer 2 non c'è problema, basta giocare
con l'Autoredraw True/False, ma se devo spostare anche il layer 1, non trovo
altra soluzione che ridisegnare tutto dopo aver modificato i valori di
ScaleLeft, ScaleTop,... Non è possibile non rifare il disegno e "spostare"
solo la finestra visibile tramite la Picture Box?
Grazie!!!
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 solo la finestra visibile tramite la Picture Box?
Permettimi un consiglio: se vuoi e/o devi metterti a lavorare seriamente
sulla grafica 2d sotto Windows, apri l'MSDN, cercati la funzione BitBlt, e
leggiti con pazienza ed attenzione l'intero capitolo che la contiene.
E' la soluzione migliore, e alla lunga ti accorgerai che ne e' valsa la
pena.

 pena.
Lo spero.
Grazie infinite!


 pena.
mi potresti inviare un piccolo esempio (codice) sulla bitblt
grazie1000
leonello

 ScaleLeft, ScaleTop,... Non č possibile non rifare il disegno e "spostare"


 ha scritto nel messaggio
news:TlZqc.752$G%.615@tornado.fastwebnet.it...

Argh...gli unici usi che ho mai fatto della BitBlt e compagnia e' sempre
stata per grossi progetti commerciali...non posto postarteli ^^;;
Cmq se guardi in giro per Internet e negli archivi di google, ne trovi a
migliaia.
Scusa ancora!

 leonello
No, i layer sono concettuali! Io disegno tutto nella PictureBox: ogni
elemento viene disegnato in maniera indistinta dagli altri. Però, volendo
ottimizzare diciamo che posso dividere gli oggetti che devo plottare in due
categorie (da qui i layer 1 e 2): quelli che vanno ridisegnati ad ogni
evento e quelli che vanno ridisegnati solo per spostamenti/zoom.



dammi almeno una...dritta per realizzare un "pan" o spostamento, di grosse
immagini in jpg in una picturebox..
io l'ho relizzato senza usare API ma solo con la mousemove,.ma e di una
lentezza ..... e non e' presentabile....
grazie ancora
leonello
ps
il mio e' un progetto hobbystico .... ..ricavare e disegnare il profilo
altimetrico di eventuali percorsi per la montain-bike
i dati planimetrici li digitizza dalle carte topografiche  o dalle carte dei
sentieri e la quato la leggo dalla carta ecc ecc
calcolare la pendenza e se eccessiva variare il percorso ecc ecc

 ha scritto nel messaggio
news:c8fud8$la0$1...@news.ngi.it...

Ho dato un'occhiata al tutto ed effettivamente la funzione che farebbe al
caso mio sarebbe le StrechBlt. Però mi sorge un dubbio: con questa funzione
io mi faccio una bella PictureBox nascosta in cui disegno tutta la mia
cartina per intero, una sola volta all'avvio del programma, e poi con la
StrechBlt mi riporto sulla PictureBox principale solo la parte che voglio
visualizzare (così da poter zoomare o spostare la visualizzazione a
piacere). Ma quando faccio u disegno su una Picture Box, il sistema dovrà
tenere memorizzato da qualche parte tutto il disegno (anche le porzioni che
vanno al di fuori dell'area visibile): lo dimostra il fatto che se porto a
false la proprietà Autoredraw, tutto quello che ho già disegnato viene
mantenuto immutato. Allora, non sarebbe più comodo e veloce (ammesso che sia
possibile) accedere direttamente a quest'area di memoria e recuperare il
disegno?