Oppure

Loading
21/01/08 15:38
MomentumX
Ciao a tutti, è il mio primo post.
Premetto che sto cercando di portare delle applicazioni VB6 (che conosco molto bene) in VB.NET 2005 (di cui non conosco ancora tutto).

Non sono ancora riuscito ad effettuare una cosa molto semplice, ovvero muovere dinamicamente una qualunque nuova entità grafica (linea, rettangolo ellisse ecc.) dinamicamente in "sovrimpressione" ad un controllo picturebox in cui sono già state plottate tutte le altre entità.

In VB.NET ho utilizzato l'evento Paint per plottare come da manuale tutte le entità già presenti, e questo funziona perfettamente con l'impiego di tutti i relativi secondi di rigenerazione del grafico, ma il problema è il posizionamento di nuove entità sul grafico dall'evento MouseMove utilizzando i nuovi valori X e Y:

in VB6 bastava plottare l'entità nella posizione XY corrente e plottare la stessa entità alle coordinate della posizione precedente utilizzando uno XOR del bitmap che consente di "cancellare" l'entità nella posizione precedente dallo sfondo senza effettuare un completo riplottaggio di tutte le entità.

Ora in VB.NET non c'è più la modalità di disegno bitmap delle entità (DrawMode) quindi se plotto la nuova entità ad ogni MouseMove "sporcherò" il grafico lungo il movimento come con un pennello, mentre se aggiungo un evento di Refresh ad ogni movimento avrò un vistoso rallentamento perché dovrà rigenerare l'intero grafico ad ogni minimo movimento del mouse.

Ho provato a sfruttare anche la possibilità di copiare lo sfondo attuale del grafico in un oggetto bitmap per ripristinare lo sfondo prima di ogni plottaggio dell'entità nella posizione attuale ma l'operazione di copia e ripristino dello sfondo bitmap è lento come l'intera ricostruzione del grafico.

C'è un modo per simulare dinamicamente il movimento di una entità su di uno sfondo bitmap in base all'evento MouseMove ?
Oppure un metodo per "salvare" una singola porzione dello sfondo per poi plottarci sopra un'entità e "ripristinare" la porzione di schermo alla successiva variazione XY della sagoma ?

Scusate la lunghezza del post ma era difficile spiegarlo ...
Se può servire potrei postare anche la sezione di codice in questione ...

Grazie! bye


aaa