Sans code source tout est possible :p j'ai pas besoin de montrer le code source, c'est de la culture générale, que ce soit un listview VB ou VC++, l'affichage est-il infini ou non ? merci BruNews
sinon voici le code(meme si on a la reponse que ca n'est pas infini de BruNews), attention c'est du lourd
void CEssaiDlg::DrawThumbnails()
{
CBitmap* pImage = NULL;
HBITMAP hBitmap = NULL;
HPALETTE hPal = NULL;
HDC hMemDC = NULL;
HGDIOBJ hOldObj = NULL;
POINT pt;
CFile ImgFile;
CString strPath;
int nWidth, nHeight;
//Ajout variables gdi+
LPCWSTR pszWide;
using namespace Gdiplus;
Gdiplus::Image* image=NULL;
Bitmap* pThumbnail;
int m_nNomDossier=m_sRepertoireImages.GetLength();
int m_nNomImage=0;
CString m_sNomImage;
//Pas d'images
if(m_VectorImageNames.empty())
return;
//Espacement entre les imagettes
int nGap = 6;
m_cListeImagette.SetRedraw(FALSE);
//Reset de la liste d'images
for(int i=0; i<m_ImageListThumb.GetImageCount(); i++)
m_ImageListThumb.Remove(i);
//Reset des items
if(m_cListeImagette.GetItemCount() != 0)
m_cListeImagette.DeleteAllItems();
//Taille de la liste images
m_ImageListThumb.SetImageCount(m_VectorImageNames.size());
i = 0;
//Dessine les imagettes
std::vector<CString>::iterator iter;
for(iter = m_VectorImageNames.begin(); iter != m_VectorImageNames.end(); iter++)
{
strPath=*iter;
USES_CONVERSION;
pszWide=A2CW(strPath);
//Chargement de l'image
image=Image::FromFile(pszWide);
//Dimensions de l'image
nWidth=image->GetWidth();
nHeight=image->GetHeight();
pThumbnail=(Bitmap*)image->GetThumbnailImage(THUMBNAIL_WIDTH,THUMBNAIL_HEIGHT,NULL,NULL);
HBITMAP hBm;
Color backgroundColor;
pThumbnail->GetHBITMAP(backgroundColor, &hBm);
pImage=new CBitmap();;
//CBitmap pImage;
//pImage->Attach(hBm);
pImage->Attach(hBm);
// Addition bitmap à la liste d'imagettes
m_ImageListThumb.Replace(i, pImage, NULL);
// Inscription du nom de l'image
m_sNomImage=m_VectorImageNames[i];
m_nNomImage=m_sNomImage.GetLength();
m_cListeImagette.InsertItem(i, m_sNomImage.Right(m_nNomImage-m_nNomDossier), i);
// Position de l'image
m_cListeImagette.GetItemPosition(i, &pt);
//pt.x = nGap + i*(THUMBNAIL_WIDTH + nGap);
m_cListeImagette.SetItemPosition(i, pt);
i++;
delete pImage;
//delete pThumbnail;
}
// Affichage des imagettes
m_cListeImagette.SetRedraw(TRUE);
}