Salve a tutti.
In un programma, usando le Win32 API, ho creato degli Static controls che raffiguravano ognuno un colore diverso (settandoli attraverso un WM_CTLCOLORSTATIC). Quando l'utente clicca su una di esse, si apre una MDIClient che ha a sua volta altri Static controls con altri colori. Se clicca in uno di essi, lo Static control precedentemente cliccato diventava di quel colore. Il problema è che quando cambio il colore dello Static control della finestra principale (ho creato un array di HBRUSH), in realtà non cambia colore, se non nascondendo e facendo riapparire la finestra. Quindi sono obbligato a mettere un flag che quando sarà 1 nasconderà e farà riapparire la finestra:
Ma questa soluzione appare non elegante, ed ogni volta che si nasconde e riappare c'è un istante in cui si vede che effettivamente la finestra si nasconde. Come potrei ovviare a questo problema?! Ho già provato i vari InvalidateRect(), UpdateWindow(), RedrawWindow(), ma senza risultato.codice:if(flagRepaint){ ShowWindow(hwnd,SW_HIDE); ShowWindow(hwnd,SW_NORMAL); flagRepaint=0; }