Image de fond Boite de dialogue MFC

Signaler
Messages postés
2
Date d'inscription
lundi 4 décembre 2000
Statut
Membre
Dernière intervention
28 mars 2008
-
Messages postés
482
Date d'inscription
vendredi 26 août 2005
Statut
Membre
Dernière intervention
5 décembre 2009
-
Bonjour, voilà j'ai remarqué que beaucoup de sujet a propos de mon probleme ont été posé mais aucun d'eux ( ou je n'ai vraiment pas fait attention) ne m'aide a le resoudre. Alors voilà je travail sous Visual Studio 2005 et je veu mettre une image en fond de ma boite de dialogue, j'ai trouver du code pour le faire, sa fonctionne mais tous mes static ont leur fond toujour gris ( ce qui n'est pas très beau ), je voudrai qu'il deviennent transparent pour avoir juste l'écriture. Quelqu'un serait assez fort pour m'aider ?

Merci d'avance.

Caleos

2 réponses

Messages postés
2
Date d'inscription
lundi 4 décembre 2000
Statut
Membre
Dernière intervention
28 mars 2008

C'est de nouveau moi ou si quelqu'un a une méthode pour en afficher une sous visual 2005 sans qu'il y est ce gnere de probleme, je suis preneur.

Caleos
Messages postés
482
Date d'inscription
vendredi 26 août 2005
Statut
Membre
Dernière intervention
5 décembre 2009
1
Bonjour,

Voilà ce que j'utilise (Visual C++ 6.0) et ça fonctionne bien :

BOOL CALLBACK MainProc
(
    HWND   hWnd   // E:handle de la fenêtre
   ,UINT   uiMsg  // E:message à traiter
   ,WPARAM wParam // E:paramètre WPARAM
   ,LPARAM lParam // E:paramètre LPARAM
)                 // S:code de retour
{
   static HBITMAP hBitmapBg = NULL;
   static HBRUSH  hBrushBg  = NULL;



   switch(uiMsg)
   {
      // --- Initialiser la boîte de dialogue
      case WM_INITDIALOG :
      {
         ...



         // --- Créer le bitmap pour le fond
         // --- (BITMAP_??? = identificateur dans le fichier des ressources)
         hBitmapBg = (HBITMAP)LoadImage(gc_hInstance,(LPCTSTR)"BITMAP_???",IMAGE_BITMAP,0,0,0);
         hBrushBg  = CreatePatternBrush(hBitmapBg);



         ...
      }
      return TRUE;





      // --- Fond de la boîte de dialogue
      case WM_CTLCOLORDLG :
      return (BOOL)hBrushBg;






      // --- Contrôles STATIC
      // --- (pour voir l'image de fond sous les textes)
      case WM_CTLCOLORSTATIC :
      SetBkMode((HDC)wParam,TRANSPARENT);
      return (BOOL)hBrushBg;





      case ...
   }
   ...
}



Jean-François