Bonjour,

Je vous envoie un extrait de code pour ma fonction d'affichage d'une bitmap.
J'arrive a charger la bitmap et à l'afficher, par contre des que je modifie les propriétés de taille de la fenetre (agrandir...) ou que je mets une fenetre par dessus, l'image n'est pas rafraichie.
C'est sans doute tout bête mais je ne vois pas bien.

Merci beaucoup, ce forum est super util

Jérôme

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
void CMainWindow::OnPaint()
{
   CBitmap *OldBitmap;
   CBitmap *Bitmap;
   CPaintDC dc(this);
 
   CDC *dcMem;
 
   dcMem = new CDC();
   dcMem->CreateCompatibleDC(&dc);
   CBitmap * pOldBitmap=(CBitmap*) dcMem->SelectObject(m_bmpBitmap);
   dc.SetStretchBltMode(HALFTONE);  // ou COLORONCOLOR
   dc.StretchBlt(0,0,1280,1024,dcMem,0,0,1280,1024,SRCCOPY);
}
 
void CMainWindow::OnFichierOuvrir() 
{
   // TODO: Add your command handler code here
   OuvrirImage=TRUE;
   //this->Invalidate(false);
   // Crée un filtre pour la boite de dialogue Ouverture 
   static char BASED_CODE szFilter[]="Fichiers Bitmap (*.bmp)|*.bmp||";
 
   //Cree la boite de dialogue Ouverture
   CFileDialog m_ldFile(TRUE, ".bmp", m_sBitmap, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, szFilter);
 
   // Affiche la boite de dialogue Ouverture et capture le résultat
   if(m_ldFile.DoModal()==IDOK)
   {
      // Recupère le nom de fichier sélectionner
      m_sBitmap=m_ldFile.GetPathName();
      //Charge le fichier Bitmap
      HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),   m_sBitmap, IMAGE_BITMAP, 0,0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);
 
      //AVons nous un handle valide pour l'image chargé
      if(hBitmap)
      {
         //Supprime le bitmap courant
         if(m_bmpBitmap.DeleteObject())
         {
            m_bmpBitmap.Detach();}
            m_bmpBitmap.Attach(hBitmap);
         }
   }
}
[Balises [CODE] ajoutées par gl, merci d'y penser à l'avenir]