[C++] WinApi - OPENFILENAME i ListBox

0

Witam,

mam pytanie: jesli ustawimy Flags na OFN_ALLOWMULTISELECT to po wywolaniu funkcji GetOpenFileName(..) pliki oddzielone NULL'ami sa zapisane w zmiennej adsresu lpstrFile? Jesli tak, to czy jest gdzies zapisana dlugosc tego stringa?

Kontynuacja problemu:
Napisalem dialog z listbox'em i button'em. Jezeli uzytkownik nacisnie przycisk pojawi sie okno wyboru pliku/plikow. Nastepnie po zaakceptowaniu, chce, aby nazwy kolejnych plikow poprawnie zostaly 'wsadzone' do tego listbox'a. Z pojedynczm plikiem to latwa sprawa, ale z wieksza liczba plikow...

Czy moglby ktos napisac kawalek kodu wsadzajacy kolejne pliki do listbox'a, po uprzednim wywolaniu funkcji GetOpenFileName(..) lub napisac jak to mam wykonac?

Z gory dzieki:)

0

OPENFILENAME ofn;
ZeroMemory(&ofn, sizeof(ofn));

ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hwind;
...

ofn.lpstrFile = new char[4000];
ofn.nMaxFile = 4000-1;


if( GetOpenFileName(&ofn) )
{
 SendMessage(hwndlist, WM_SETREDRAW, 0, 0); // aby nie chlapało...

 for(char *s = ofn.lpstrFile; *s; s+=strlen(s)+1)
    SendMessage(hwndlist, LB_ADDSTRING, 0, (long)s);

 SendMessage(hwndlist, WM_SETREDRAW, 1, 0);

 InvalidateRect(hwndlist, 0, 0); // przerysuj
}

delete []ofn.lpstrFile;

1 użytkowników online, w tym zalogowanych: 0, gości: 1