[solved]WinApi: Filter setzen der OPENFILENAME Struktur

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.

[solved]WinApi: Filter setzen der OPENFILENAME Struktur

Beitragvon joggel » 19.07.2012, 07:40

Halli Hallo,

also ich komm nicht mehr weiter... Ich möchte Dateien auswählen und öffnen per WinApi.
Ich benutze dabei GetOpenFileName.
Befülle dabei die OPENFILENAME structure und das wars. Es funktioniert auch alles recht gut, außer das setzen der Filter...
Ich möchte das im Filter, also rechts unten in so einem Dialog, sowas steht "Files (*.abc *.cde *.efg)" und das dann auch nur diese Dateien mit der angegeben Endung angezeigt werden.
Das setzen der Filter geschieht über das Attribut lpstrFilter.
Aber irgendwie klappt das nicht recht...
Hat einer von euch eine Ahnung wie ich das zu überegen habe?

Ich habe schon einiges ausprobiert. zB auch so etwas:
Code: Ansicht erweitern :: Alles auswählen
       
wchar_t filter("files\0*.abc;*.cde\0\0");
 


Gruß
Zuletzt geändert von joggel am 19.07.2012, 10:44, insgesamt 1-mal geändert.
Benutzeravatar
joggel
 
Beiträge: 640
Registriert: 06.11.2007, 18:06
Wohnort: Dresden

Re: WinApi: Filter setzen der OPENFILENAME Struktur

Beitragvon Stephan Theisgen » 19.07.2012, 08:49

Hi!

Also bei mir funktioniert das zumindest für eine Dateiendung so problemlos:

Code: Ansicht erweitern :: Alles auswählen
ofn.lpstrFilter = L"Preferences (*.prf)\0*.prf\0";
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrDefExt = L"prf";

und für mehrer Dateien müsstest Du eigentlich nur:

Code: Ansicht erweitern :: Alles auswählen
ofn.lpstrFilter = L"Preferences (*.prf)\0*.prf\0Modes (*.mod)\0*.mod\0";
ofn.nFilterIndex = 2;

angeben.

Ich hoffe das hat weitergeholfen.

Viele Grüße
Stephan
Stephan Theisgen
 
Beiträge: 75
Registriert: 29.07.2003, 10:13

Re: WinApi: Filter setzen der OPENFILENAME Struktur

Beitragvon joggel » 19.07.2012, 09:09

Danke Dir, das hat schon etwas weitergeholfen.
Allerdings möchte ich nicht, das der Nutzer die Filter auswählen kann, sondern ich möchte dem Nutzer zu verstehen geben, dass alle Dateien mit der und der Endung angezeigt werden.
Also dastehen sollte dann soetwas "Files (*.dat *.fls *.bat *.dll)".
Und in diesem FileDialog werden dann eben nur Dateien dieses Typs angezeigt.
Also nur ein Filter, der aber mehrere Dateien filter.

So wie es jetzt ist, kann ich immer nur einen Filter für einen Dateityp auswählen...

Edit
Okay, also ich habe was gefunden, es ist das was ich suche und das scheint auch zu funktionieren :)
http://forums.codeguru.com/archive/inde ... 41058.html


Danke nochmal für deine Hilfe.
Benutzeravatar
joggel
 
Beiträge: 640
Registriert: 06.11.2007, 18:06
Wohnort: Dresden

Re: WinApi: Filter setzen der OPENFILENAME Struktur

Beitragvon Stephan Theisgen » 19.07.2012, 09:18

Genau das habe ich auch gerade gefunden, bei mir klappts zumindest:
Code: Ansicht erweitern :: Alles auswählen
ofn.lpstrFilter = L"Preferences (*.prf)\0*.prf;*.inf\0";
ofn.nFilterIndex = 1;


also einfach mit ";" die einzelnen Endungen trennen und keine Leertasten dazwischen!
Stephan Theisgen
 
Beiträge: 75
Registriert: 29.07.2003, 10:13


Zurück zu Programmiersprachen, Quelltext und Bibliotheken

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste