Non ho molto tempo di scrivere codice, quindi cerco di essere più chiaro dal punto di vista esplicativo.Originariamente inviato da spinter
mmm non capisco
potresti farmi un esempio perfavore?
Tu hai un controllo che deve ridisegnare se stesso ogni volta che Windows "intima" un'operazione di refresh, e questo controllo visualizza elementi grafici tracciati precedentemente con il mouse.
Immagino che tu stia già intercettando gli eventi relativi al mouse per poter effettuare i dovuti tracciamenti sullo schermo, giusto?
Ciò che devi fare innanzitutto è evitare di tracciare direttamente sul controllo grafico, poiché la gestione dell'aggiornamento visuale del controllo sovrascriverebbe ciò che tu hai disegnato.
Hai quindi due opportunità.
Quando intercetti gli eventi del mouse, puoi memorizzare le azioni dell'utente in una struttura creata a tuo piacimenti che sia congeniale per immagazzinare i clic, le linee e tutto quanto deve essere disegnato; le azioni dell'utente sul controllo, quindi, popolano questi dati che vai a creare e che utilizzerai nel metodo di refresh per tracciare sul controllo le forme geometriche o gli elementi grafici relativi.
In alternativa, puoi invece tracciare direttamente gli elementi grafici che corrispondono alle azioni dell'utente, ma non sul controllo grafico, bensì in un buffer separato, un'immagine bitmap o comunque una rappresentazione grafica separata del controllo stesso; il metodo di refresh, in questo caso, si limiterà semplicemente a riportare questa immagine, modificata inserendo i disegni dell'utente tracciati a seguito delle azioni con il mouse, nell'area client del controllo.
Ciao!![]()

Rispondi quotando