Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Doppio buffer in VB.NET
Forum - C# / VB.NET - Doppio buffer in VB.NET

Avatar
enox (Normal User)
Rookie


Messaggi: 39
Iscritto: 11/06/2009

Segnala al moderatore
Postato alle 16:01
Giovedì, 11/06/2009
Questo topic è stato chiuso dal moderatore

Un saluto a tutti gli utenti.
E' il primo post e il saluto è d'obbligo! ;)

Sto cercando di implementare il doppio buffer in VB.NET, ma ne sto uscendo matto...
Attualmente il programma riesce a tracciare (con funzioni GDI tipo PictureBox1.drawline... ecc. ecc.) ciò che mi serve.
Vorrei però farlo su una PictureBox nascosta e poi copiare di botto la grafica sulla PictureBox visibile.

Come si esegue la copia???

Grazie in anticipo!

PM
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 16:06
Giovedì, 11/06/2009
Ad esempio, con la API

BitBlt

Questo esempio

http://www.codeproject.com/KB/GDI-plus/Bitblt_wrapper_clas ...

mi sembra che sia per il 2003, ma dovrebbe andare ...

PM
Avatar
enox (Normal User)
Rookie


Messaggi: 39
Iscritto: 11/06/2009

Segnala al moderatore
Postato alle 16:35
Giovedì, 11/06/2009
ahhhhh... carina la routine! Peccato che copi solo ciò che è visibile... appena metto la PictureBox sorgente non visibile... non copia più nulla. :noway:

Grazie comunque per la sollecita risposta! Altre proposte?

Ultima modifica effettuata da enox il 11/06/2009 alle 16:35
PM
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 17:16
Giovedì, 11/06/2009
Imposta le coordinate del controllo in modo che non sia visibile ... pensi possa essere una soluzione?

PM
Avatar
enox (Normal User)
Rookie


Messaggi: 39
Iscritto: 11/06/2009

Segnala al moderatore
Postato alle 17:48
Giovedì, 11/06/2009
NO, appena l'immagine esce dal campo visivo (anche spostando la finestra sullo schermo) la copia non funziona più. E' evidente che usa il video come contenitore dove andare "a pescare".

Comunque ho risolto! Posto la soluzione ottenuta da tale David De Giacomi (Microsoft)...

Bitmap bm = new Bitmap(100,100);
Graphics g = Graphics.FromImage(bm);
g.DrawLine() ecc.
bm.Save(ecc.eccc.)

Credo possa essere utile a qualcun altro! ;)

Sani!

PM