abdoulax
Messages postés
875
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
22 juin 2012
1
12 juil. 2005 à 14:54
Bon b voici un bou du code, j'espere que tu va comprendre :
Tu peux voir comment j'ai fé pour palier le pb, ms c du bricolage....
//Insertion des icone dans le listview
HIMAGELIST himlSmall;
HICON hIconItem;
himlSmall = ImageList_Create(GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),FALSE,2,1);
hIconItem = LoadIcon(MY_GET_INSTANCE(tWAIT->Dlg),MAKEINTRESOURCE(IDI_ICON2));
int IcoWait = ImageList_AddIcon(himlSmall,hIconItem);
DeleteObject(hIconItem);
hIconItem = LoadIcon(MY_GET_INSTANCE(tWAIT->Dlg),MAKEINTRESOURCE(IDI_ICON3));
int IcoOk = ImageList_AddIcon(himlSmall,hIconItem);
DeleteObject(hIconItem);
ListView_SetImageList(GetDlgItem(tWAIT->Dlg, IDC_LIST10), himlSmall, LVSIL_SMALL);
DeleteObject(himlSmall);
//Initialisation de l'item
LV_ITEM lvItem;
lvItem.mask
= LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM | LVIF_STATE;
lvItem.state = 0;
lvItem.stateMask = 0;
lvItem.iItem = 0;
lvItem.lParam = 0;
lvItem.iImage = IcoOk;
//Recherche de fichier
liste = FindFirstFile(TmpDir, &File);
for (n=0;FindNextFile(liste, &File);)
if ( strcmp(File.cFileName, "..") )
{
//Remplie le listview avec les fichiers trouvés
strcpy(TmpDir,GetConfig(firstDlg(0),4));
strcat(TmpDir,"\");
strcat(TmpDir,File.cFileName);
lvItem.iSubItem = 0;
lvItem.pszText = File.cFileName;
lvItem.cchTextMax = strlen(lvItem.pszText)+1;
SendMessage(GetDlgItem(tWAIT->Dlg,
IDC_LIST10),LVM_INSERTITEM,0,(LPARAM)&lvItem);
lvItem.iSubItem = 1;
lvItem.pszText = TmpDir;
lvItem.cchTextMax = strlen(lvItem.pszText)+1;
SendMessage(GetDlgItem(tWAIT->Dlg,
IDC_LIST10),LVM_SETITEMTEXT,0,(LPARAM)&lvItem);
n++;
}
FindClose(liste);
int b;
char LocalFile[MAX_PATH];
//Parcours le listview tant que l'on trouve des items
for (b=n,n=0;SendMessage(GetDlgItem(tWAIT->Dlg, IDC_LIST10),LVM_GETITEMTEXT,n,(LPARAM)&lvItem);)
{
//Récupère les paramètre de chaque colonne
strcpy(LocalFile,TmpDir);
lvItem.iSubItem = 0;
SendMessage(GetDlgItem(tWAIT->Dlg, IDC_LIST10),LVM_GETITEMTEXT,n,(LPARAM)&lvItem);
SetDlgItemText(tWAIT->Dlg, IDC_STATIC_101,TmpDir); //Affiche l'envoie en cours
//Envoie du fichier par ftp
if ( FtpMain(tWAIT->Dlg,1,LocalFile,TmpDir,&tWAIT->waitOK) != -1 )
{//pas d'erreur
if ( tWAIT->waitOK == 1 )
{
//Enleve l'item de la list
SendMessage(GetDlgItem(tWAIT->Dlg,
IDC_LIST10),LVM_DELETEITEM,n,0);
//Supprime le fichier
DeleteFile(LocalFile);
//Décrémente le nombre de fichier
b--;
}
}
else //Sinon
{
//on modifie l'icone de l'item
lvItem.iImage = IcoWait;
SendMessage(GetDlgItem(tWAIT->Dlg, IDC_LIST10),LVM_DELETEITEM,n,0);
SendMessage(GetDlgItem(tWAIT->Dlg,
IDC_LIST10),LVM_INSERTITEM,n,(LPARAM)&lvItem);
//Affiche un message d'erreur
MessageBox(tWAIT->Dlg,"Erreur lors de l'envoie de l'archive,
veuillez ressayer ultérieurement.",TmpDir,MB_ICONERROR);
//Incrémente le nombre d'erreur
n++;
}
//Affiche le nombre de fichier restant ainsi que le nombre d'erreur
sprintf(TmpDir,"Files : %i Erreur : %i",b-n,n);
SetDlgItemText(tWAIT->Dlg, IDC_STATIC_100,TmpDir);
lvItem.iSubItem = 1;
if ( tWAIT->waitOK == -1 )
break;
}
Have Fun ...