c++ Filtry w oknie dialogowym

0

Witam jak dodać więcej niż 1 rozszerzenie do jednego filtru do okna dialogowego otwierania plików (win API). Sprawa wygląda tak:
ofn.lpstrFilter = "Pliki Audio (.mp3)\0.mp3\0Wszystkie pliki\0*.*\0";
i chcę żeby W plikach audio było rozpoznawane więcej niż 1 rozszerzenie (np .mp3,.wav,.ogg).
I jeszcze jak można zrobić aby było można zaznaczyć więcej niż jeden plik naraz, również mi bardzo na tym zależy.
Tutaj kod całego skryptu na to okno dialogowe.

 OPENFILENAME ofn;
  TCHAR szFile[MAX_PATH];

  ZeroMemory(&ofn, sizeof(ofn));
  ofn.lStructSize = sizeof(ofn);
  ofn.lpstrFile = szFile;
  ofn.lpstrFile[0] = '\0';
  ofn.nMaxFile = sizeof(szFile);
  ofn.lpstrFilter = "Pliki Audio (*.mp3)\0*.mp3\0Wszystkie pliki\0*.*\0";
  ofn.nFilterIndex = 1;
  ofn.lpstrInitialDir = NULL;
  ofn.lpstrFileTitle = NULL;
  ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
  if(GetOpenFileName(&ofn)){
}
 
0

OPENFILENAME Structure:

The first string in each pair is a display string that describes the filter (for example, "Text Files"), and the second string specifies the filter pattern (for example, ".TXT"). To specify multiple filter patterns for a single display string, use a semicolon to separate the patterns (for example, ".TXT;.DOC;.BAK").

0
"Pliki audio (*.mp3;*.wav;*.ogg)\0*.mp3;*.wav;*.ogg\0Wszystkie pliki (*.*)\0*.*\0"
0

Ok dzięki, a jak jeszcze można zrobić aby sie dało zaznaczyć wiele plików naraz?

0

Ten sam link co poprzednio - OFN_ALLOWMULTISELECT. Korzystanie z dokumentacji naprawdę nie boli.

0

Po użyciu tej funkcji całkiem mi zmienia okno do otwierania, jak można używać tamtego okna z tą funkcja? poza tym jak z jednej zmiennej char można wyodrębnić te wszystkie ścieżki plików?

0

No bez kitu... deus już Ci podał tego linka: http://msdn.microsoft.com/en-us/library/ms646839%28v=vs.85%29.aspx TU JEST WSZYSTKO OPISANE!

0

No, jak dodam do .Flags dopisek OFN_EXPLORER to jest to okno explorera, tylko że string z wybranymi plikami ogranicza się tylko do 1 scieżki i to w dodatku bez nazwy pliku, a nie jak wcześniej bez użycia OFN_EXPLORER wszystkie scieżki były oddzielone separatorem NULL. Chyba że z okna wybiorę tylko jeden plik to wtedy mam całą scieżke łącznie z plikiem. Co trzeba zrobić żeby do tego jednego stringu wpisywało mi wszystkie scieżki plików łącznie z ich nazwami oraz jak zmienić ten separator z NULL na jakiś inny wiodący znaczek żeby można je było potem podzielać? Czy też w jaki inny sposób wyodrębnić te pliki?

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