[C++] WinApi - OPENFILENAME i ListBox

Odpowiedz Nowy wątek
2006-08-12 20:08
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:)


J0|<eR [PL]____
|
| Pisze programy na zamównienie<[C/C++]
|

| "Jeśli nie skończymy z wojną, wojna skończy z nami" - (Herbert George Wells)

Pozostało 580 znaków

2006-08-12 22:26
flaker
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;
 

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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