Changer la couleur de fond d'une appli

Toutoun13 Messages postés 65 Date d'inscription mardi 13 juillet 2004 Statut Membre Dernière intervention 26 mars 2007 - 9 sept. 2005 à 14:26
lectpe Messages postés 162 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 17 juillet 2010 - 3 août 2009 à 21:42
Bonjour,



J'ai créé une appli de base avec VC++. Par defaut le fond de la fenetre
est blanc. Est il possible de modifier ce fond, j'aimerais mettre du
gris.



Merci d'avance pour votre aide

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 sept. 2005 à 14:43
"appli de base" ???

ciao...
BruNews, MVP VC++
0
PLUiK Messages postés 46 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 25 août 2006
9 sept. 2005 à 14:51
Il faut utiliser la fonction SetClassLong (
HWND, int, LONG); avec CreateSolidBrush ();



Exemple:


void ChangeColor (HWND hWnd, COLORREF cr)

{

HBRUSH hBrush, hOldBrush;

hBrush = CreateSolidBrush (cr); //On crée le pinceau avec la nouvelle couleur

hOldBrush = (HBRUSH) SetClassLong (hWnd, GCL_HBRBACKGROUND, (LONG) CreateSolidBrush (cr)); //On obtient l'ancien pinceau associé avec la fenêtre et on "applique" le nouveau pinceau

DeleteObject (hOldBrush); //Destruction de l'ancien pinceau

}
0
Toutoun13 Messages postés 65 Date d'inscription mardi 13 juillet 2004 Statut Membre Dernière intervention 26 mars 2007
9 sept. 2005 à 15:10
J'ai placé ta fonction dans ma classe MainFrame, et rien n'y fait.
J'apelle la fonction dans "InitInstance" du projet :

((CMainFrame *)m_pMainWnd)->ChangeColor(m_pMainWnd->m_hWnd, RGB(125, 125, 125));

Peut etre qu'il faut que je place la fonction ailleurs ?
0
Toutoun13 Messages postés 65 Date d'inscription mardi 13 juillet 2004 Statut Membre Dernière intervention 26 mars 2007
9 sept. 2005 à 15:13
Mon appli est une fenetre simple, que j'ai separé en 4 parties, grace à 3 splitters. Je donc créé 4 View différentes dont le fond est pas défaut blanc, que j'aimerais passé en gris au demarage, le temps de demander quelques infos à l'utilisateur, puis une fois les infos saisies je repasse en blanc et j'affiche le contenu des vues.
0

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

Posez votre question
Toutoun13 Messages postés 65 Date d'inscription mardi 13 juillet 2004 Statut Membre Dernière intervention 26 mars 2007
9 sept. 2005 à 17:50
J'ai mis le code suivant dans la methode OnPaint de mes view :

GetClientRect(&rcClient);
dc.FillSolidRect(&rcClient, m_BckGndColor);

Au demarage m_BckGndColor=RGB(125,125,125) puis je le remet blanc quand l'utilisateur a rempli les infos du projet. Cette solution fonctionne presque, seulement maintenant le problème c'est que la méthode OnPaint dessine sans arret un rectangle blanc, ce qui cache le contenu de mes vues, par exemple un TreeView dans une de mes vues.
0
lectpe Messages postés 162 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 17 juillet 2010 3
3 août 2009 à 21:42
Bonjour.


wndclass.hbrBackground = (HBRUSH)(COLOR_BTNSHADOW);

Tu n'as qu'à remplacer COLOR_BTNSHADOW par :
CreateSolidBrush(RGB(128, 128, 128));

Cordialement, Grégory.
0
Rejoignez-nous