[MFC] Resize d'images dans un CListCtrl

Resize d'images dans un CListCtrl [MFC] - API Win32 - Programmation

Marsh Posté le 17-09-2008 à 13:46:41    

Bonjour,
 
Je dispose d'une liste d'images que je souhaiterais resizer puis afficher dans un CListCtrl.
 
Pour l'instant j'ai ce code qui fonctionne mais qui ne redimensionne pas les images :

Code :
  1. // listeElements contient la liste des images à afficher
  2. std::list<Element*>::iterator it;
  3. m_ImageList.Create( WIDTH, HEIGHT, ILC_COLOR24, 0, 1 ); // WIDTH et HEIGHT sont la taille originale des images
  4. m_CtrlList.SetImageList( &m_ImageList, LVSIL_NORMAL );
  5. for( it = listeElements.begin(); it != listeElements.end(); ++it )
  6. {
  7.   int a = lstrlenA((LPCTSTR)(*it)->chanIcon); // chanIcon est le chemin vers mon image
  8.   BSTR szBuffer = SysAllocStringLen(NULL, a);
  9.            
  10.   CClientDC cdc(this);
  11.   CDC memDC1;
  12.   memDC1.CreateCompatibleDC( &cdc );
  13.            
  14.   ::MultiByteToWideChar( CP_ACP, 0, (LPCTSTR)(*it)->chanIcon, a, szBuffer, a );
  15.            
  16.   Gdiplus::Bitmap m_pBitmap(szBuffer,TRUE);
  17.   HBITMAP bm = CreateCompatibleBitmap( cdc.m_hDC, m_pBitmap.GetWidth(), m_pBitmap.GetHeight() );     
  18.   m_pBitmap.GetHBITMAP( RGB(0,0,0), &bm );
  19.            
  20.   CBitmap Bitmap;               
  21.   Bitmap.Attach(bm);
  22.   int ret = m_ImageListVodChannel.Add( &Bitmap, RGB(0, 0, 0) );
  23.   m_CtrlListVOD.InsertItem( nIndex, NULL, nIndex );
  24.   m_CtrlListVOD.RedrawItems( nIndex, nIndex );
  25.    
  26.   DeleteObject(bm);                         
  27.   ::SysFreeString(szBuffer);
  28. }


J'ai essayé de modifier WIDTH et HEIGHT avec les nouvelles valeurs que je désire mais le résultat n'est pas celui attendu.
 
Auriez-vous une idée ?
Merci d'avance.


---------------
Be the one with the flames.
Reply

Marsh Posté le 17-09-2008 à 13:46:41   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed