[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.
Antworten
joggel

[solved]WinApi: Filter setzen der OPENFILENAME Struktur

Beitrag 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ß
Zuletzt geändert von joggel am 19.07.2012, 11:44, insgesamt 1-mal geändert.
Stephan Theisgen
Beiträge: 94
Registriert: 29.07.2003, 11:13

Re: WinApi: Filter setzen der OPENFILENAME Struktur

Beitrag 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
joggel

Re: WinApi: Filter setzen der OPENFILENAME Struktur

Beitrag 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.
Stephan Theisgen
Beiträge: 94
Registriert: 29.07.2003, 11:13

Re: WinApi: Filter setzen der OPENFILENAME Struktur

Beitrag 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!
Antworten