Controlli personalizzati & Visual C++ .NET

martedì 22 novembre 2005 - 09.03

bujia Profilo | Newbie

Nessuno di voi può darmi una mano???? Sono nuovo di questo forum...ma mi aspettavo un benvenuto migiore...

Il mio problema:

Ho sviluppato un'applicazione con Visual C++ .NET, ora vorrei realizzare 2 funzionalità ma non so come:

1) personalizzare i controlli, in modo grafico intendo, tipo fare Bottoni tondi oppure con forme strane, gradienti nei colori e cose del genere,. E' possibile farlo con Visual C++ .NET? Ho visto che esiste WindowBlinds, ma mi sembra che questo programma generi un tema che si applica a tutto Windows XP e non all'applicazione specifica. Insomma in poche parole voglio rendere più attraente la mia applicazione per l'utente finale.

2) Vorrei rendere queste personalizzazioni esterne al programma, in modo che sostituendo opportuni file di risorse grafiche io ho un aspetto grafico del programma diverso, senza ovviamente ricompilare il programma. E'possibile?

Spero che qualcuno di voi mi possa aiutare.

Grazie mille!

Brainkiller Profilo | Guru

>Nessuno di voi può darmi una mano???? Sono nuovo di questo forum...ma
>mi aspettavo un benvenuto migiore...

Ciao e benvenuto !
Se hai già postato evidentemente nessuno sapeva rispondere :)

>Ho sviluppato un'applicazione con Visual C++ .NET, ora vorrei
>realizzare 2 funzionalità ma non so come:

Hai un obbligo di usare Visual C++ .NET o è tua scelta ? Ti consiglio di usare C# piuttosto se non hai un esperienza pluriennale nello sviluppo di applicazioni C++ e VisualC++.

>1) personalizzare i controlli, in modo grafico intendo, tipo
>fare Bottoni tondi oppure con forme strane, gradienti nei colori
>e cose del genere,. E' possibile farlo con Visual C++ .NET?
>Ho visto che esiste WindowBlinds, ma mi sembra che questo programma
>generi un tema che si applica a tutto Windows XP e non all'applicazione
>specifica. Insomma in poche parole voglio rendere più attraente
>la mia applicazione per l'utente finale.
>
>2) Vorrei rendere queste personalizzazioni esterne al programma,
>in modo che sostituendo opportuni file di risorse grafiche io
>ho un aspetto grafico del programma diverso, senza ovviamente
> ricompilare il programma. E'possibile?

Ciò che vuoi fare è una specie di skinning della tua applicazione come fa Winamp.
Ci sono vari modi per raggiungere questo scopo, il primo è creare un controllo derivato da un controllo base tipo Button e gestire tu il redesign dell'oggetto applicando eventualmente bordi particolari, gradienti, immagini gif, ecc.

Il secondo modo è creare un controllo da zero, dove gestirai tu il tutto, dal ridisegno, la pressione, la gestione degli eventi, ecc.ecc.

Entrambe le strade se fatte con VisualC++ sono molto complesse perchè richiedono come già detto prima molti anni di programmazione alle spalle, conoscenza del sistema operativo e del funzionamento delle agestione delle finestre e dei messaggi di Windows, conoscenza approfondità di alcune API e così via. Cosa del tutto più facile se fatta su C#.

Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

bujia Profilo | Newbie

Ciao e grazie per la risposta!

Fondamentalmente uso il C++ perchè lo conosco un pò meglio e poi perchè ho Visual C++ .NET e non C#.... :-(

Ma mettiamo che avessi C#, sarebbe più facile quanto? Cioè potrei fare tutto in modo gestito, tipo come cambiare proprietà dei controlli e basta? oppure la cosa è più complessa?
Non è che esista che tu sappia un qualche manuale o tutorial che spieghi un pò come fare uno skinning dell'applicazione?

Altra domanda: ammesso che riesco a fare lo skinning, posso riuscire a rendere esterne le risorse grafiche usate? In mod che un grafico, senza ricompilare la mia applicazione riesca a ridisegnare un nuovo skin e applicarlo. Questo è quello che vorrei fare.

Grazie mille...attendo la tua risposta...

Alessandro

Brainkiller Profilo | Guru

>Ma mettiamo che avessi C#, sarebbe più facile quanto? Cioè potrei
>fare tutto in modo gestito, tipo come cambiare proprietà dei
>controlli e basta? oppure la cosa è più complessa?
>Non è che esista che tu sappia un qualche manuale o tutorial

Allora diciamo di sì. Con C# bene o male riesci a fare le stesse cose che fai con C++ grazie all'interoperabilità. Anche se a volte diventa un po' complicato. Cmq. con C# puoi creare banalmente controlli tuoi Custom e puoi decidere tu come ridisegnarli. Si possono creare oggetti molto buoni avendo una buona dose di tempo a disposizione. E' normale che con C++ il tutto sarà più rapido in termini di esecuzione di codice e minor consumo di memoria.

>Altra domanda: ammesso che riesco a fare lo skinning, posso riuscire
>a rendere esterne le risorse grafiche usate? In mod che un grafico,
>senza ricompilare la mia applicazione riesca a ridisegnare un
> nuovo skin e applicarlo. Questo è quello che vorrei fare.

Questo certamente sì.
Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
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 !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5