Salut, PRET A L'EMPLOI HANDLE hlst doit etre sur une listbox avec HSCROLL qui est calculee dans boucle. tu dois avoir aussi: char szdir[260] rempli avec dossier et "\" final. char szbuff[260] sert pour func dessous. FACILEMENT MODIFIABLE.
void FilesInDirectory() { WIN32_FIND_DATA wfd; HANDLE hfl; HDC hdc; SIZE size; int len; SendMessage(hlst, LB_RESETCONTENT, 0, 0); SendMessage(hlst, LB_SETHORIZONTALEXTENT, 0, 0); // wParam len strcpy(szbuff, szdir); strcat(szbuff, "*.*"); hfl = FindFirstFile(szbuff, &wfd); if(hfl == INVALID_HANDLE_VALUE) return; SendMessage(hlst, WM_SETREDRAW, 0, 0); len = 0; hdc = GetDC(hlst); SelectObject(hdc, (HFONT)SendMessage(hlst, WM_GETFONT, 0, 0)); if(wfd.cFileName[0] != 46) { if(!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { SendMessage(hlst, LB_ADDSTRING, 0, (long) wfd.cFileName); GetTextExtentPoint32(hdc, wfd.cFileName, strlen(wfd.cFileName), &size); if(size.cx > len) len = size.cx; } } while(FindNextFile(hfl, &wfd)) { if(wfd.cFileName[0] != 46) { if(!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { SendMessage(hlst, LB_ADDSTRING, 0, (long) wfd.cFileName); GetTextExtentPoint32(hdc, wfd.cFileName, strlen(wfd.cFileName), &size); if(size.cx > len) len = size.cx; } } } FindClose(hfl); ReleaseDC(hlst, hdc); if(len) SendMessage(hlst, LB_SETHORIZONTALEXTENT, len+5, 0); SendMessage(hlst, WM_SETREDRAW, 1, 0); SendMessage(hlst, LB_SETCURSEL, 0, 0); }
ciao...
------------------------------- Réponse au message : -------------------------------
> je souhaite lister les fichiers d'un repertoire. je n'arrive pas a ecrire la boucle de recherche de fichier!!!! > quelqu'un peut m'aider!!! > Merci d'avance
|