begin process at 2012 02 12 07:39:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

GUI

 > 

Changer la couleur de fond de son app


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Changer la couleur de fond de son app

vendredi 22 août 2008 à 06:45:15 | Changer la couleur de fond de son app

jb212121

Membre Club
Bonjour

Voila mon souci
Je creer une mon app en appelant
DialogBox(hInstance, MAKEINTRESOURCE(IDD_APP), NULL, AppDlgProc);
Mais je trouve pas le moyen de changer la couleur de fond
J'ai essayé avec
hBrush=CreateSolidBrush(RGB(0,0,255))
Mais sans succé....
quelqu'un sais comment faire ??

Merci
vendredi 22 août 2008 à 09:46:44 | Re : Changer la couleur de fond de son app

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

Je n'ai pas encoreappris à faire les resources, donc pas de DialogBox pour moi...

Cependant, quand tu appelles DialogBox, tu lui passe en paramètre la fonction qui va être appelée en cas de réception d'un message.

Si, dans cette fonction, tu traites le message WM_ERASEBKGND, et tu dessine avec ton brush un rectangle de la taille de ta DialogBox, avec un code dans ce genre là :

      hBackBrush = CreateSolidBrush(nColor);
     
      // Dessin de la fenêtre
      GetClientRect(_hWnd, &back);
      FillRect((HDC)wParam, &back, hBackBrush);
      DeleteObject(hBackBrush);

Un exemple ici, mais avec une vrai fenêtre.
vendredi 22 août 2008 à 10:39:07 | Re : Changer la couleur de fond de son app

rt15

Membre Club Administrateur CodeS-SourceS
Houlà je me suis pas relu là... Que de fautes.

Bon, bin maintenant, je sais vaguement faire des ressources.
Merci jb212121 !


#include "windows.h"
#include "resource.h"
HINSTANCE _hThisInstance;              // Handle du module
//
// Traitement des messages.
//
LRESULT CALLBACK DialogProcedure(HWND hDlg, UINT nMessage, WPARAM wParam, LPARAM lParam)
{
  HBRUSH hBackBrush;     // Brush de dessin de l'arrière plan de la fenêtre
  RECT back;             // Rectangle de la zone cliente/fenêtre
 
  switch (nMessage)
  {
    case WM_INITDIALOG:
      return TRUE;
    case WM_ERASEBKGND:
      // Création du brush de dessin de l'arrière plan de la DilaogBox
      hBackBrush = CreateSolidBrush(RGB(0, 0, 255));
     
      // Dessin du fond
      GetClientRect(hDlg, &back);
      FillRect((HDC)wParam, &back, hBackBrush);
      DeleteObject(hBackBrush);
      return TRUE;
    case WM_COMMAND:
      if (LOWORD(wParam) == IDOK)
        MessageBox(hDlg, "Hello world !", "Kikoo", MB_OK);
      else if (LOWORD(wParam) == IDCANCEL)
        EndDialog(hDlg,0);
      return TRUE;
  }
  return FALSE;
}
#pragma comment(linker, "/entry:main")
INT32 _cdecl main()
{
  // Récupération du handle du module
  _hThisInstance = GetModuleHandle(NULL);
  DialogBox(_hThisInstance, MAKEINTRESOURCE(MAIN_DLG), 0, DialogProcedure);
  // Code d'erreur en sortie
  return 0;
}
vendredi 22 août 2008 à 10:56:59 | Re : Changer la couleur de fond de son app

jb212121

Membre Club
Sa marche pas quand je l'intégre a mon apli.....
Il doit bien y avoir un moyen de changer la couleur de fond quand meme ......

vendredi 22 août 2008 à 11:15:38 | Re : Changer la couleur de fond de son app

rt15

Membre Club Administrateur CodeS-SourceS
Houla. Soit plus précis svp.

"Sa marche pas"

Ca ne compile pas ? -> Quel message d'erreur ?
Ca plante ?
La couleur ne change pas ?
Cela pose des problème d'affichage (Interférence avec d'autres composants...) ?

Tu peux évenutellement copier-coller ici une partie de ton code, notamment la fonction qui traite les messages (AppDlgProc si je me réfère à ton premier poste).

Et bien sûr que c'est possible : je t'ai déjà donné deux exemples de codes complets...
vendredi 22 août 2008 à 11:23:02 | Re : Changer la couleur de fond de son app

racpp

Administrateur CodeS-SourceS
Réponse acceptée !
Salut,
Il suffit de traiter le message WM_CTLCOLORDLG en retournant le HBRUSH de la couleur voulue. Exemple:

BOOL CALLBACK DialogProcedure(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    static HBRUSH couleurfond;
    switch(message)
    {
       case WM_INITDIALOG:
          couleurfond=CreateSolidBrush(RGB(0,0,255));
          //...
          return 0;

       case WM_CTLCOLORDLG:
          return (BOOL)couleurfond;

       case WM_CLOSE:
          DeleteObject(couleurfond);
          EndDialog(hDlg,0);
          break;

       default:
          break;
    }
    return 0;
}


vendredi 22 août 2008 à 11:29:56 | Re : Changer la couleur de fond de son app

BruNews

Administrateur CodeS-SourceS
rt15 > ton exemple va bon mais fais comme racpp, ne pas créer le brush à chaque event.

ciao...
BruNews, MVP VC++
vendredi 22 août 2008 à 14:01:49 | Re : Changer la couleur de fond de son app

jb212121

Membre Club
rt15 Tout se compile nickel mais ca ne fait rien.

En revanche ton code marche impecable
racpp

Merci beaucoup


Cette discussion est classée dans : changer, couleur, app, fond


Répondre à ce message

Sujets en rapport avec ce message

ListCtrl couleur de fond des cases [ par gus2647 ] Bonjour, Je viens de creer une listctrl et j aimerais changer le bkgcolor de la case en fonction de la valeur quelle contient (vert si positif, rouge couleur de fond boite de dialogue [ par dambeaufort ] Bonjour, Pourriez vous m'indiquer une méthode afin de changer la couleur de fond d'une boite de dialog. Je travaille en MFC sous visual C++.Si vous po changer la couleur du fond de la view [ par glaive ] je veux changer la couleur de fond de la view, je travaille en MFCet je n'est pas une base dans les API de windowsmerci d'avanceglaive l'epée de la ju Changement de toutes les couleurs dans une appli en MFC [ par obby ] Salut,  Je voudrai changer toutes les couleurs dans mon application. J'ai déjà réussi à changer la couleur de fond d'une boite de dialogue mais j'aim Changer la couleur de fond d'une appli [ par Toutoun13 ] 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 Changer la couleur des caractères et du fond d'écran sur Dev-C++ [ par fauve ] Salut à tous Je voudrais savoir si sur Dev-C++, il existe une fonction pour faire changer la couleur des caractères et/ou du fond d'écran ? Ca fait u Changer couleur par un clique [Win32 sans MFC] [ par jojomillenium ] Bonjour, j'aimerai pouvoir changer la couleur de fond d'un static, ou meme d'un element picture (mon but et juste d avoir un carré rempli d'une couleu Changer la couleur du fond d'un édit [ par ndubien ] Bonjour, Je cherche à savoir comment faire pour modifier la couleur du fond d'un edit dont je connait le HWND. Merci d'avance pour vos réponses Changer la Couleur du Titre d'une GroupBox [ par iMouss ] bonjour,J'aimerais savoir s'il est possible et comment changer la couleur du titre ainsi que celle du contour dans une groupbox(je suis sous VS.NET da Changer couleur Menu Bar [ par Neo_Fr ] Bonsoir, Est ce possible de changer la couleur d'une menu bar?; si oui comment? Neo_Fr


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,279 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales