Seite 1 von 1

[solved]WinApi: Filter setzen der OPENFILENAME Struktur

Verfasst: 19.07.2012, 08:40
von joggel
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: Alles auswählen

	
wchar_t filter("files\0*.abc;*.cde\0\0");
Gruß

Re: WinApi: Filter setzen der OPENFILENAME Struktur

Verfasst: 19.07.2012, 09:49
von Stephan Theisgen
Hi!

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

Code: 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: 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

Re: WinApi: Filter setzen der OPENFILENAME Struktur

Verfasst: 19.07.2012, 10:09
von joggel
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
[/b]

Danke nochmal für deine Hilfe.

Re: WinApi: Filter setzen der OPENFILENAME Struktur

Verfasst: 19.07.2012, 10:18
von Stephan Theisgen
Genau das habe ich auch gerade gefunden, bei mir klappts zumindest:

Code: 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!