Réglage de la barre de titre et les couleurs de bordure par programmation

Je suis en train de changer ma demande, s' de la barre de titre et les couleurs de bordure de la programmation. J'ai essayé beaucoup de choses mais sans succès, et a décidé de modifier ces couleurs à l'échelle du système. Parce qu'il est également acceptable pour moi de changer de barre de titre et les couleurs de bordure que ma demande est en cours d'exécution, et de revenir en arrière à la fin de mon application. (Gestion de l'environnement, avec un petit ensemble d'applications en cours d'exécution)

Est-il possible de changer ces couleurs de manière dynamique(processus à l'échelle ou à l'échelle du système, à moins que le processus de changement à l'échelle est possible)? Pouvez-vous suggérer un moyen pour réaliser cet objectif?

J'ai essayé quelque chose comme ce qui suit, mais il ne' t faire ce que je veux:

int aElements[2] = {COLOR_WINDOW, COLOR_ACTIVECAPTION};
DWORD aOldColors[2];
DWORD aNewColors[2];

aOldColors[0] = GetSysColor(aElements[0]); 
aOldColors[1] = GetSysColor(aElements[1]); 
aNewColors[0] = RGB(0x80, 0x80, 0x80);  //light gray 
aNewColors[1] = RGB(0x80, 0x00, 0x80);  //dark purple 

SetSysColors(2, aElements, aNewColors);
SetSysColors(2, aElements, aOldColors);

Merci d'avance

MODIFIER

C'est exactement ce que je veux:

Réglage de la barre de titre et les couleurs de bordure par programmation

  • Si vous êtes sur Windows 10, vous êtes coincé avec une grosse goutte de blanc.
  • Windows 8.1 pour le moment. J'ai oublié de mentionner que je vous remercie 🙂
  • Remplacer NC_PAINT et tirer la barre de titre vous-même. Vous pouvez utiliser DrawFrameControl de tirer tous les boutons et tout ce qui est nécessaire.
  • Avez-vous utilisé Microsoft Office dernièrement? Il n'y a plus de rendre la non-zone cliente d'une fenêtre qu'un appel à la DrawFrameControl. Ignorant les thèmes n'est pas très bon style.
  • Raymond Chen dit mieux que je le pouvais: Ne pas utiliser de l'état global de gérer un problème local de plus, Que faire si deux programmes a fait ça?
  • Il est possible. De deux façons: 1. firefox façon. dwmextended pour le client. tirage de la barre de titre vous-même avec drawthemebackground... ou drawframecontrol. 2. supprimer la barre de titre anddraw tout le contenu vous-même.
  • Je veux juste jouer avec les couleurs, les frontières et la barre de titre. Pouvez-vous me suggérer un exemple?
  • Mais il n'est pas facile à personnalisé la barre de titre de la couleur. msdn.microsoft.com/en-us/library/windows/desktop/... catch22.net/tuts/custom-titlebar
  • avez-vous essayé COLOR_WINDOW+1 et COLOR_ACTIVECAPTION+1 à la place?
  • J'ai essayé celui-là, mais il n'a' t changer légende des couleurs 🙁
  • La seule façon que je sais en œuvre de l'ensemble de WM_NCPAINT vous-même, mais ce n'est pas trivial.
  • Ok j'ai compris cela, j'ai cherché sur internet pendant des jours, mais je ne peux' t trouver tous les exemples qui change de ces couleurs. Avez-vous un tel exemple? Ma demande est très simple. Je veux seulement changer la barre de titre et les couleurs de bordure.
  • La barre de titre & border font partie de la zone non client, et peint par WM_NCPAINT. Il n'y a pas de moyens faciles pour le personnaliser, c'est un tout-ou-rien.
  • Avez-vous essayé d'utiliser le DWM? Question similaire (mais en C#) peut être trouvé ici: stackoverflow.com/questions/13660976/... Si vous pouvez "obtenir" la couleur, alors vous pouvez probablement le " set " de la couleur.
  • Pouvez-vous expliquer pourquoi cette réponse n'est pas utile? J'ai clairement mentionné qu'à partir de ce bloc de code que vous pouvez avoir une idée.

InformationsquelleAutor Alpay | 2015-08-31