Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. Visual Studio 6.0
Cambiare colore dei componenti
lunedì 19 maggio 2008 - 10.01
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
redcloud
Profilo
| Newbie
22
messaggi | Data Invio:
lun 19 mag 2008 - 10:01
Salve, sto lavorando su un'applicazione scritta in MFC con Visual Studio 2005 e vorrei poter cambiare il tema dei componenti. Se non sbaglio, con Visual Studio 2003 era possibile cambiare il colore di background di una dialog semplicemente scegliendolo nell'editor dell'IDE. Nel 2005 invece non v'è traccia di questa opzione. Suggerimenti?
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 19 mag 2008 - 16:21
>Salve, sto lavorando su un'applicazione scritta in MFC con Visual
>Studio 2005 e vorrei poter cambiare il tema dei componenti. Se
>non sbaglio, con Visual Studio 2003 era possibile cambiare il
>colore di background di una dialog semplicemente scegliendolo
>nell'editor dell'IDE. Nel 2005 invece non v'è traccia di questa
>opzione. Suggerimenti?
Ciao,
io non sono la persona più adatta a rispondere a domande di questo tipo.
Però so che è sufficiente gestire l'evento OnCtlColor come indicato in questo articolo per colorare lo sfondo non solo di una dialog ma anche i controlli in essa contenuti:
http://support.microsoft.com/kb/117778
Nell'esempio riportato viene modificato il colore di una MessageBox e di una EditBox (anche se manca il codice). Per modificare il background della DialogBox prova a gestire il seguente case:
case CTLCOLOR_DLG:
Ricordo anche io vagamente che nel VC++ 6.0 c'era la possibilità di modificare il colore da IDE ma nel 2005 non l'ho trovato neanche io.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
redcloud
Profilo
| Newbie
22
messaggi | Data Invio:
mar 20 mag 2008 - 08:12
Grazie, avevo visto anche io quell'esempio ma secondo quanto scritto, ogni volta che voglio cambiare colore di un componente (una label, un button, un qualsiasicosa) devo crearne uno nuovo che erediti il componente base? E' un lavoraccio se devo fare un tema completo per un'intera applicazione
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 20 mag 2008 - 16:03
>Grazie, avevo visto anche io quell'esempio ma secondo quanto
>scritto, ogni volta che voglio cambiare colore di un componente
>(una label, un button, un qualsiasicosa) devo crearne uno nuovo
>che erediti il componente base? E' un lavoraccio se devo fare
>un tema completo per un'intera applicazione
Come tema intendi una Sking tipo Winamp o Media Player ?
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
redcloud
Profilo
| Newbie
22
messaggi | Data Invio:
mar 20 mag 2008 - 16:05
No, semplicemente cambiare i colori di tutti i componenti utilizzati nell'applicazione.
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 20 mag 2008 - 16:12
>No, semplicemente cambiare i colori di tutti i componenti utilizzati
>nell'applicazione.
Io ho guardato solo il codice e non ho ereditato niente. Ho copiato e incollato e funziona come ho indicato. L'utilità del case è che si può specificare appunto a che categoria di controlli cambiare il colore.
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
redcloud
Profilo
| Newbie
22
messaggi | Data Invio:
mer 21 mag 2008 - 08:06
Ah capito! Ma se volessi usare questo tipo di rendering per tutta l'applicazione? Per esempio, potrei usare quel codice nella WinApp così qualsiasi componente che inserirò in futuro sarà renderizzato senza doverci mettere più mano?
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 21 mag 2008 - 10:44
>Ah capito! Ma se volessi usare questo tipo di rendering per tutta
>l'applicazione? Per esempio, potrei usare quel codice nella WinApp
>così qualsiasi componente che inserirò in futuro sarà renderizzato
>senza doverci mettere più mano?
Teoricamente sì. Dipende se i nuovi controlli che inserisci deriveranno da qualche altro controllo che hai inserito nel case e che quindi viene colorato. Tipo se dalla classe CButton derivi un tuo button dovrebbe venire colorato anche quello assieme agli altri normali.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
redcloud
Profilo
| Newbie
22
messaggi | Data Invio:
gio 22 mag 2008 - 13:17
Mmm con i button non funziona :(
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 22 mag 2008 - 16:23
>Mmm con i button non funziona :(
Hai ragione.
Mi sono documentato anche io.
Dai un'occhiata qui:
http://www.codeguru.com/buttonctrl/color_button.shtml
L'autore dell'articolo ha scritto una classe ad hoc scaricabile per creare button colorati.
E' open quindi puoi vedere la logica.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !