Personnaliser l'aspect des fenêtres en C++ [Win32]

Résolu
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016 - 3 oct. 2007 à 13:34
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 - 4 oct. 2007 à 10:18
Bonjour à tous,

Je voudrais savoir comment fait-on pour changer le thème d'une fenêtre afin d'avoir un aspect et des formes de boutons, d'objets graphique en générale différent des fenêtre standard de l'OS. Est-ce là la notion de thème qui rentre en compte, et peut-on d'une part le définir pour une seule application, et d'autre part en créer un à son goût de A a Z ??
Est-ce compliqué ??

RV

L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"

7 réponses

MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
3 oct. 2007 à 22:01
Hey hey les gars, vous oubliez l'owner drawn !!!
C'est un moyen de modifier la facon dont les objets sont affichés dans windows ;-)
ex : msn, le pannel d'ati, firefox, ie, etc ;-)

Vila, j'ai pas de lien sous la main, mais je peux vous dire que c'est trés simple

/* MuPuF® <
3
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
4 oct. 2007 à 10:18
Yep, très clair ^^

En tout cas, on est je pense d'accord sur un point : c'est possible, mais pas forcément très simple :-)

a plouche !
3
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
3 oct. 2007 à 14:44
Heuuuu... je voudrais pas m'avancer, mais tu cherches à faire des styles pour une application windows comme on en fait avec une application Web. Tu peux le faire (mais c'est chiant) à la condition d'utiliser des composants qui le permettent (bon courage pour en trouver des bon gratuits, ou si tu les codes toi même) et ceux-ci n'utiliseront certainement le format de fichier des themes windows.
Autre solution : faire une interface en Xaml (.net 3). La tu peux définir des styles qui vont changer la tronche de tes composants ergonomiques.

Mais sinon, tu ne peux pas appliquer un style windows seulement sur une application (enfin je crois pas).

Bon coding à toi !
0
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016
3 oct. 2007 à 16:31
oui, je m'en doutais un peu

Sinon, y-t-il des interfaces, des logiciels qui sont développées en partie ou entièrement en OpenGL par ex ??
Il faut alors recréer toute la gestion Clavier/Souris et comportement des composants, ça doit être assez fastidieux aussi mais faisable, et avec des résultats plutôt pas mal je pense. En fait, ça revient à faire un moteur graphique dédié à des interfaces 2D avec toute la puissance d'OpenGL derrière.

Je ne sais pas si qqu'un s'est déjà aventuré à faire ce genre de truc, j'ai cru voir un glToolKit pour le développement d'interface 2D sur un des threads du forum, j'ai pas été plus loin, mais c'est un peu ce genre de truc au final dont je parle.

Si ça existe, c'est que c'est faisable, non ??

Qu'en pensez-vous ? des infos ?? des exemples ??

L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
3 oct. 2007 à 16:36
Un exemple de logiciel dont l'interface est entièrement développé en OpenGL : Blender...
Mais alors pour faire la même chose... pfiouf, ça doit être assez long, et il faut pas se louper dans l'architecture du soft...
0
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
3 oct. 2007 à 23:21
Nan mais l'ower draw, si tu parles de ce que je pense, OK, ça peut se faire, mais ça implique de dériver chaque composant ergonomique pour le faire dessiner comme il faut en tenant compte d'une gestion de thème... C'est relativement long à faire et à tester, et crois moi, pour l'avoir fait, c'est pas forcément simple (http://www.csharpfr.com/codes/FUNKYCOMPONENTS_28023.aspx). Et pour revenir à la notion de thème de la question de départ, la gestion des thèmes graphiques, faut se la coltiner sois même, et à mon avis, même si c'est faisable, ben c'est assez long, et pas forcément évident...

... enfin moi j'dis ça, mais j'dis rien...  ^^
0
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
3 oct. 2007 à 23:42
C'est pas faux, mais c++ est un langage assez bas niveau, faut pas demander la lune, et puis bon, je sais pas si ça existe, et si ça existait, où ça se siturait ? dans windows ? un programme tier à faire tourner sur ta machine rien que pour avoir un skin ? ça serait une belle merde ...
Si j'ai bien compris, tu voudrais pouvoir dl des themes à appliquer dynamiquement à ton programme. j'avais commencé à bosser sur un systeme de skin, un XML définissait une fenetre, et puis j'avais une grosse usine à gaz qui en faisait une fenetre, mais c'est difficilement gérable et bien vite la merde à utiliser ... j'ai abandonné le projet justement au moment de passer à l'owner drawn par manque de motivation et un autre projet plus intéréssant, mais si vous êtes chaud pour le reprendre (au moins comme exemple), je peux vous passer les sources.
Ce qui me déplaisait dedans aussi, c'est qu'au final, on se retrouvait avec une sorte de MFC like, pas trés propre mais for sure, diablement rapide à utiliser.

Pour en revenir sur l'owner drawn, je pense que c'est vraiment une solution parfaite pour peu que ce soit lié avec un fichier en externe qui te dise comment afficher (et du coup, tu pourrais faire de fichiers "themes").

vila, pour vous servir. j'espere que j'ai été clair (pas convaincu), je cours me coucher

PS: ton funkyComponents est un super début ;-)

/* MuPuF® <
0
Rejoignez-nous