Changer la couleur de fond d'une boite de dialogue

Signaler
Messages postés
15
Date d'inscription
jeudi 25 mars 2004
Statut
Membre
Dernière intervention
9 juillet 2004
-
Messages postés
69
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
19 octobre 2005
-
mon programme se compose d'une boite de dialogue dont j'ai changer la couleur de fond grace à WM_CTLCOLORDLG
mais j'ouvre ensuite une seconde boite de dialogue grace à la fonction Dialog mais par contre je n'arrive pas à changer la couleur de cette seconde boite de dialogue : pourtant je fais pareil que pour l'autre
voici mon code :
creation de la boite de dialogue
DialogBox (hinst, TEXT ("IDD_SAISI"), hwnd, MainDlgProc2) ;


boucle de msgs

HBRUSH hBrush;
    HDC hDc;       
    switch (msg)
     {
        case WM_INITDIALOG:
          //on affiche le format de la date a saisir dans l'edittext
          SetDlgItemText(hwndDlg, IDDPAQ, "jj/mm/aa");
          SetDlgItemText(hwndDlg, IDFPAQ, "jj/mm/aa");
          SetDlgItemText(hwndDlg, IDDH, "jj/mm/aa");
          SetDlgItemText(hwndDlg, IDFH, "jj/mm/aa");
          hBrush = CreateSolidBrush(RGB(255,190,120));
          char buffer[10];
          return TRUE ;
          
        case WM_CLOSE:                                                      
          DeleteObject(hBrush);
          DestroyWindow(hwndDlg); 
          return TRUE;
          
        case WM_CTLCOLORDLG:
          return (long)hBrush;
          break;
              
        case WM_COMMAND:
          switch (LOWORD (wParam))
          {
            case IDBTN:
               EndDialog (hwndDlg, 0) ;
               return TRUE ;
          }
          break ;
     }



et la boite reste desesperement grise.
si qq'un a une ptite idée ...
merci d'avance

1 réponse

Messages postés
69
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
19 octobre 2005
4
Initialise ton brush comme ça:
HBRUSH hBrush  = CreateSolidBrush(RGB(0, 0, 0));

ne met pas l'initialisation a initdialog...

Et pour l'ouverture de ton boite de dialogue tu met ça
DialogBox (hinst, TEXT ("IDD_SAISI"), hwnd, MainDlgProc2) ;


mais je comprends pas... pourquoi HINSTANCE "hinst" mais pas un HWND comme "hwnd2" ? Je crois que le probleme est la..

cout << "Salut je suis un debutant" << endl;
cout << " :big) ";