2008-10-05 5 views
3

Je suis actuellement en train de surcharger les WM_NCPAINT, WM_NCCALCSIZE et pour peindre ma propre barre de titre couleur/thème pour une application sur laquelle je travaille. Maintenant, cela fonctionne très bien, mais les boutons min, max et close sont toujours le thème par défaut xp.Modifier le thème des boutons min/max/close

J'ai regardé ce qui les contrôle et les messages de la souris. Cependant, ils contrôlent également le redimensionnement et d'autres fonctions que je ne veux pas perdre.

Existe-t-il un moyen facile de simplement changer le thème de ces boutons?

  • Windows XP
  • MFC Forms
  • Visual Studio 2005
+0

Les programmes qui remplacent de manière arrogante mon apparence GUI choisi sont l'un de mes animaux de compagnie déteste dans la vie. Ne fais pas ça. Laissez les boutons max, min et close de l'utilisateur à la recherche de l'utilisateur qui les a choisis! –

+0

Que faire si cela fait partie d'une application qui a des skins personnalisables? Qui a dit quoi que ce soit à propos de l'utilisateur n'ayant rien à dire? –

Répondre

2

Je pense que votre meilleur pari ici est de désactiver les boutons et les redessiner avec quelque chose qui ressemble à de the code I posted in this answer. Il est en C# avec WinForms, mais la grande majorité est surchargée de WndProc(), que vous devriez pouvoir utiliser presque copier/coller dans MFC. Implémenter des gestionnaires de clics pour faire ce que vous voulez qu'ils fassent est trivial.

Remarque: Le demandeur de cette question a déclaré que le code ne fonctionnait pas dans Vista. Je n'ai pas de boîte Vista, mais ça marche pour moi sous XP.

0

Vous pouvez également vérifier comment il est fait dans MFC suivant (VS2008 SP1). Le support de thème là fait dessiner de la barre de titre entière, vous pouvez obtenir quelques idées de cela. Je présume qu'ils l'ont testé sur Vista, aussi;)

Questions connexes