Newsgroup: it.comp.lang.visual-basic
Titolo: [VB2005] Disegnare su picturebox

ciao a tutti, in vb5 x disegnare (linee, cerchi, ecc) su una
picture box usavo i classici line, circle o le api di windows
tramite hwnd del controllo picturebox. Per creare la linea
guida (o elastico x chi lo chiama cosi) che segue il puntatore
del mouse per disegnare ad esempio una spezzata, praticamente
disegnavo questa linea come colore invertito dello sfondo, facendo
così non dovevo rigenerare tutto il disegno ad ogni movimento
del mouse (spero di essermi spiegato).
in vb2005 ho letto (credo sul sito MS) che per la parte grafica
la portabilità da vb5/6 è pari a zero, quindi devo rifare tutto,
però qui le routine di disegno le devo scrivere nell'evento paint
della picture box, quindi se non sbaglio devo sempre rigenerare
tutto il disegno...
Ho capito male io?
c'è qualke barbatrutto per fare quello che mi serve?
Grazie a tutti,
pusky il re delle rane.

 ha scritto nel messaggio 
news:462fc6f1$0$17943$4faf...@reader1.news.tin.it...

Non è ben chiaro quale sia il problema principale.
Primo, se non hai bisogno di un'immagine di sfondo ti consiglio di usare un 
Panel anzichè una Picturebox.
Poi, quello che puoi fare per evitare lo sfarfallio del ridisegno è usare il 
double buffering.
Puoi realizzarlo semplicemente creandoti il tuo usercontrol e impostando lo 
stile:
this.SetStyle(ControlStyles.OptimizedDoubleBuffer | 
ControlStyles.AllPaintingInWmPaint, true);
this.UpdateStyles();
Sinceramente non ho mai provato a disegnare con i colori invertiti.
Ciao

 Sinceramente non ho mai provato a disegnare con i colori invertiti.
Lo si fa per creare linee (o altre entità) guida. praticamente su un foglio
bianco un rettangolo a colori invertiti sarebbe composto da linee nere.
se perà si sovrappone ad una linea già esistente nel disegno, i punti
comuni sarebbero bianchi e non neri. basta quindi disegnare 2 volte
un'entità per cancellarla, così facenzo non si doveva rigenerare tutto
il disegno.
Saluti e grazie.
Pusky re delle rane 

 il disegno.
Sì, so come funziona, dico solo che non ho idea se disegnare a pixel
invertiti sia ua cosa semplice o bisogna trovare qualche barbatrucco.
Non ho idea se questo mio progetto possa esserti utile, se vuoi dacci un
occhio, magari ti evita di scriverti codice già scritto: contiene già un 
pannello (canvas) su cui disegnare.
http://www.codeproject.com/useritems/another_graphic_engine.asp
Ciao

 
http://www.codeproject.com/useritems/another_graphic_engine.asp
Ho dato un occhio al volo al sito oggi dall'ufficio. Grazie ma x ora vorrei
provare da solo, anche se reinvento l'acqua calda.
NOTA PERSONALE: non mi piace guardare i sorgenti altrui perchè
a volte ho difficoltà a capire la logica e la mentalità di chi li ha 
scritti.
preferisco sbatterci la testa così almeno mi esercito anche. Ammetto
però che in alcuni casi il mio ragionamento va a farsi benedire.
saluti e grazie.
Pusky re delle rane. 

 però che in alcuni casi il mio ragionamento va a farsi benedire.
sono perfettamente d'accordo con te. anche se a volte me ne pento :)

 però che in alcuni casi il mio ragionamento va a farsi benedire.
Anch'io, se la soluzione è semplice da raggiungere.
Ciao