Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Changer la couleur de fond de son app [ Windows / GUI ] (jb212121)

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

jb212121

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

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

rt15 Tout se compile nickel mais ca ne fait rien.

En revanche ton code marche impecable
racpp

Merci beaucoup



Cette discussion est classé 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 couleur de fond d'une fenetre en WIN32 (VisualC++) [ par glipper ] Bonjour,Je cherche à changer la couleur d'arriere fond d'une fenetre en Win32. Il est en effet possible de faire ça dans la classe de creation de la f 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


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.