Filter

Die Informationen in diesem Abschnitt gelten für Explorer-Stil und alten Stil Öffnen und Speichern unter Dialogfelder.

Sie bieten Dateiname Filter zur Unterstützung des Benutzers bei der Begrenzung der Dateinamen, die im Dialogfeld angezeigt. Ein Dateinamefilter besteht aus einem Paar von Null-terminierte Zeichenfolgen, eine Beschreibung und ein Muster, eine verkettet zum anderen. Das Dialogfeld zeigt die Beschreibung den Benutzer wählen Sie die Filter verwenden lassen; und das Muster verwendet, um die Dateien zum Anzeigen auswählen.

Um die Filter anzugeben, legen Sie den LpstrFilter -Member der OPENFILENAME -Struktur darauf auf einen Puffer, der ein Array von Filter-Paare für Verbindungszeichenfolgen enthält. Letzte Zeichenfolge in das Array muss eine zusätzliche Null-Zeichen folgen.

Eine Musterzeichenfolge kann eine Kombination aus gültigen Dateinamenszeichen und dem Sternchen (). Das Sternchen ist ein Platzhalter, der eine beliebige Kombination von gültigen Dateinamenszeichen darstellt. Das Dialogfeld zeigt nur der Dateien, die dem Muster entsprechen. Um mehrere Muster für die gleiche Beschreibung anzugeben, müssen Sie ein Semikolon (;) verwenden, um die Muster zu trennen. Beachten Sie, dass Leerzeichen in der Musterzeichenfolge können zu unerwarteten Ergebnissen führen.

Das folgende Codefragment gibt zwei Filter. Der Filter mit der Beschreibung "Quelle" hat zwei Muster. Wenn der Benutzer diese Filter auswählt, zeigt das Dialogfeld nur Dateien, die die.C und.CXX Erweiterungen.

OPENFILENAME Ofn;       / / gemeinsame Dialogfeld Struktur

ofn.lpstrFilter = "Source\0 *.C; *.CXX\0All\0*.*\0 "
ofn.nFilterIndex = 1 

Der nFilterIndex -Member der OPENFILENAME -Struktur gibt einen Index, der angibt, welcher Filter zuerst das Dialogfeld verwendet. Der erste Filter in den Puffer hat Index 1, der zweite 2 und So weiter. Wenn die Benutzeränderungen, die der Filter während der Verwendung im Dialogfeld, das nFilterIndex Mitglied auf den Index des ausgewählten Filters auf festgelegt ist zurück.

Sie können einen benutzerdefinierten Filter erstellen, indem Sie das LpstrCustomFilter -Mitglied auf die Adresse eines Puffers, der einen einzelnen Filter enthält, und durch Festlegen des nMaxCustFilter -Members auf die Größe des Puffers in Zeichen oder Bytes. Das Dialogfeld immer platziert den benutzerdefinierten Filter am Anfang der Liste der Filter und bei Rückgabe immer aktualisiert, den Muster Teil des Filters mit dem Muster aus dem vom Benutzer ausgewählten filter.

Für Explorer-Stil Dialogfelder kann die Standarderweiterung ändern, wenn der Benutzer einen anderen Filter auswählt. Wenn der Benutzer einen Filter auswählt, deren erste Muster von der Form ist *.Xxx (d. h., die Erweiterung ist kein Platzhalterzeichen enthalten), das Dialogfeld verwendet Xxx als die Standarderweiterung. Dies passiert nur, wenn Sie eine Standard-Erweiterung in der LpstrDefExt -Member der OPENFILENAME -Struktur angegeben. Zum Beispiel, wenn der Benutzer wählt "Source\0 *.C; *.CXX\0 "Filter, die Standarderweiterung ändert sich in"C". Jedoch, wenn Sie den Filter "Source\0 **. definiert hatteC * \0 ", die Standarderweiterung würde nicht ändern, da die Erweiterung ein Platzhalterzeichen enthält.