Die OPENFILENAME -Struktur enthält Informationen, die die GetOpenFileName und GetSaveFileName -Funktionen verwenden, um ein Öffnen oder Speichern als gemeinsames Dialogfeld zu initialisieren. Nachdem der Benutzer das Dialogfeld geschlossen wurde, gibt das System Informationen über die Auswahl des Benutzers in dieser Struktur.
typedef Struct TagOFN {/ / Ofn DWORD lStructSize;
HWND HwndOwner;
HINSTANCE hInstance;
LPCTSTR LpstrFilter;
LPTSTR LpstrCustomFilter;
DWORD nMaxCustFilter;
DWORD nFilterIndex;
LPTSTR LpstrFile;
DWORD nMaxFile;
LPTSTR LpstrFileTitle;
DWORD nMaxFileTitle;
LPCTSTR LpstrInitialDir;
LPCTSTR LpstrTitle;
DWORD Flags;
NFileOffset WORD;
WORD nFileExtension;
LPCTSTR LpstrDefExt;
DWORD lCustData;
LPOFNHOOKPROC LpfnHook;
LPCTSTR LpTemplateName;
} OPENFILENAME
Wenn das OFN_EXPLORER-Flag festgelegt ist, verwendet das System die angegebene Vorlage ein Dialogfeld erstellen, das ein untergeordnetes Element im Dialogfeld Standard-Explorer-Stil ist. Wenn das OFN_EXPLORER-Flag nicht gesetzt ist, verwendet das System die Vorlage eine Mediäval Dialogfeld erstellen, die das Standard-Dialogfeld ersetzt.
Die erste Zeichenfolge in jedem Paar ist eine Zeichenfolge für die Anzeige, die den Filter (z. B. "Textdateien") beschreibt, und die zweite Zeichenfolge gibt das Filtermuster (z. B. "*."TXT"). Um mehrere Filtermuster für eine einzelne Anzeigezeichenfolge festzulegen, verwenden Sie ein Semikolon, um die Muster zu trennen (z. B. "*.TXT; *.DOC; *.BAK"). Eine Musterzeichenfolge kann eine Kombination aus gültigen Dateinamenszeichen und das Platzhalterzeichen Sternchen (**). Enthalten Sie keine Leerzeichen in der Musterzeichenfolge.
Das System ändert nicht die Reihenfolge der Filter. Es zeigt sie in der Datei Typen Kombinationsfeld in der Reihenfolge angegeben, in lpstrFilter.
Wenn LpstrFilter NULL ist, wird das Dialogfeld keine Filter angezeigt.
Wenn dieser Member NULL ist, wird das Dialogfeld nicht benutzerdefinierte Filtermuster beibehalten.
Wenn diese Member nicht NULL ist, muss der Wert des Elements nMaxCustFilter die Größe in Bytes (ANSI-Version) oder 16-Bit-Zeichen (Unicode-Version), des Puffers LpstrCustomFilter angeben.
Wenn nFilterIndex NULL und LpstrCustomFilter NULL ist, verwendet das System den ersten Filter im LpstrFilter Puffer. Wenn alle drei Mitglieder 0 (null) oder NULL sind, das System keine Filter und zeigt keine Dateien in der Datei auswählen im Dialogfeld.
Wenn das OFN_ALLOWMULTISELECT-Flag festgelegt ist und der Benutzer mehrere Dateien wählt, enthält der Puffer das aktuelle Verzeichnis, gefolgt von dem Dateinamen der ausgewählten Dateien. Für Explorer-Stil Dialogfelder sind die Verzeichnis und Dateinamen Zeichenfolgen NULL getrennt, mit einer zusätzlichen NULL-Zeichen nach dem letzten Dateinamen. Für alten Stil Dialogfelder die Zeichenfolgen Leerzeichen getrennt sind und die Funktion verwendet kurze Dateinamen für Dateinamen mit Leerzeichen. Sie können die FindFirstFile -Funktion zwischen langen und kurzen Dateinamen umgewandelt.
Wenn der Puffer zu klein ist, die Funktion gibt FALSE zurück, und die CommDlgExtendedError -Funktion gibt FNERR_BUFFERTOOSMALL zurück. In diesem Fall enthalten die ersten zwei Bytes des Puffers LpstrFile die erforderliche Größe in Bytes oder Zeichen.
Windows NT 5.0 und höher; Windows 98 und höher:
Wenn LpstrInitalDir NULL ist und das aktuelle Verzeichnis alle Dateien des angegebenen Filter-Typen enthält, ist das erste Verzeichnis das aktuelle Verzeichnis.
Wenn LpstrInitalDir NULL ist und das aktuelle Verzeichnis keine Dateien den angegebenen Filter-Typen enthält, ist das Ausgangsverzeichnis das persönliche Verzeichnis des aktuellen Benutzers. Um das aktuelle Verzeichnis des Benutzers persönliche Dateien als das ursprüngliche Verzeichnis anzugeben, legen Sie LpstrInitialDir auf den Pfad zurückgegeben, indem die SHGetSpecialFolderLocation Funktion mit dem Flag CSIDL_PERSONAL.
Frühere Versionen von Windows und Windows NT:
Wenn LpstrInitalDir NULL ist, ist das erste Verzeichnis das aktuelle Verzeichnis.
| Flagge | Bedeutung |
|---|---|
| OFN_ALLOWMULTISELECT | |
| Gibt an, dass im Listenfeld Name Mehrfachauswahl zulässt. Wenn Sie auch das OFN_EXPLORER-Flag festgelegt, verwendet das Dialogfeld die Benutzeroberfläche Explorer-Stil; Andernfalls verwendet es die altmodische Benutzeroberfläche . Wenn der Benutzer mehr als eine Datei auswählt, gibt der LpstrFile -Puffer die Dateinamen der ausgewählten Dateien der Pfad zum aktuellen Verzeichnis gefolgt. Der nFileOffset -Member ist der Offset in Bytes oder Zeichen, um den Dateinamen des ersten, und der nFileExtension -Member wird nicht verwendet. Für Explorer-Stil Dialogfelder sind die Verzeichnis und Dateinamen Zeichenfolgen NULL getrennt, mit einer zusätzlichen NULL-Zeichen nach dem letzten Dateinamen. Dieses Format ermöglicht der Explorer-Stil Dialogfelder wieder lange Dateinamen, die Leerzeichen enthalten. Für alten Stil Dialogfelder die Verzeichnis und Dateinamen Zeichenfolgen werden durch Leerzeichen getrennt und verwendet die Funktion kurze Dateinamen für Dateinamen mit Leerzeichen. Sie können die FindFirstFile -Funktion zwischen langen und kurzen Dateinamen umgewandelt. Wenn Sie eine benutzerdefinierte Vorlage für ein im alten Stil Dialogfeld angeben, muss die Definition der im Listenfeld Dateiname LBS_EXTENDEDSEL Wert enthalten. |
|
| OFN_CREATEPROMPT | |
| Wenn der Benutzer eine Datei, die nicht vorhanden ist angibt, wird dieses Flag des Dialogfelds den Benutzer für die Berechtigung zum Erstellen der Datei aufgefordert. Wenn der Benutzer entscheidet, die Datei zu erstellen, das Dialogfeld wird geschlossen und die Funktion gibt den angegebenen Namen; Das Dialogfeld bleibt geöffnet. Wenn Sie dieses Flag mit dem OFN_ALLOWMULTISELECT-Flag verwenden, können im Dialogfeld Benutzer nur eine nicht vorhandene Datei angeben. | |
| OFN_ENABLEHOOK | |
| Ermöglicht die Hook-Funktion angegeben in der LpfnHook -member. | |
| OFN_ENABLESIZING | |
| Windows NT 5.0, Windows 98:Ermöglicht das Dialogfeld Explorer-Stil mit der Maus oder der Tastatur geändert werden kann. Standardmäßig können die Explorer-Format Öffnen und Speichern als Dialogfelder im Dialogfeld geändert werden kann, unabhängig davon, ob dieses Kennzeichen gesetzt ist. Dieses Flag ist nur erforderlich, wenn Sie ein Hook-Prozedur oder eine benutzerdefinierte Vorlage bereitstellen. Die alten Stil-Dialogfenster erlaubt keine Größenänderung. | |
| OFN_ENABLETEMPLATE | |
| Gibt an, dass das LpTemplateName Mitglied auf den Namen von einer Dialogfeldvorlagen-Ressource im Modul identifiziert durch das Mitglied hInstance verweist. Wenn das OFN_EXPLORER-Flag festgelegt ist, verwendet das System die angegebene Vorlage ein Dialogfeld erstellen, das ein untergeordnetes Element im Dialogfeld Standard-Explorer-Stil ist. Wenn das OFN_EXPLORER-Flag nicht gesetzt ist, verwendet das System die Vorlage eine Mediäval Dialogfeld erstellen, die das Standard-Dialogfeld ersetzt. |
|
| OFN_ENABLETEMPLATEHANDLE | |
| Gibt an, dass das hInstance Mitglied ein Datenblockes identifiziert, das eine vorgespannte Dialogfeld Feld Vorlage enthält. Das System ignoriert die LpTemplateName , wenn dieses Flag angegeben ist. Wenn das OFN_EXPLORER-Flag festgelegt ist, verwendet das System die angegebene Vorlage ein Dialogfeld erstellen, das ein untergeordnetes Element im Dialogfeld Standard-Explorer-Stil ist. Wenn das OFN_EXPLORER-Flag nicht gesetzt ist, verwendet das System die Vorlage eine Mediäval Dialogfeld erstellen, die das Standard-Dialogfeld ersetzt. |
|
| OFN_EXPLORER | |
| Gibt an, dass Anpassungen an das Dialogfeld Öffnen oder Speichern,Da die neuen Explorer-Stil Anpassung Methoden verwenden. Weitere Informationen finden Sie unter Explorer-Style-Hook-Prozeduren und Benutzerdefinierte Vorlagen-Explorer-Stil . Standardmäßig verwenden der Dialogfelder Öffnen und Speichern als die Explorer-Stil Benutzeroberfläche unabhängig davon, ob dieses Kennzeichen gesetzt ist. Dieses Flag ist erforderlich, nur wenn Sie ein Hook-Prozedur oder eine benutzerdefinierte Vorlage bieten, oder legen Sie das OFN_ALLOWMULTISELECT-flag. Wenn Sie die altmodische Benutzeroberfläche, lassen Sie das OFN_EXPLORER-Flag Weg und bieten Sie eine Ersatz alten Stil Vorlage oder Haken Sie Verfahren. Wenn Sie den alten Stil wollen aber keine benutzerdefinierte Vorlage brauchen oder Prozedur zu verknüpfen, geben Sie einfach eine Hook-Prozedur, die immer FALSE zurückgibt. |
|
| OFN_EXTENSIONDIFFERENT | |
| Gibt an, dass der Benutzer eine Dateinamenerweiterung eingegeben, die von der durch LpstrDefExtangegebenen Erweiterung unterscheidet. Wenn LpstrDefExt NULL ist, verwenden die Funktion dieses Flag nicht. | |
| OFN_FILEMUSTEXIST | |
| Gibt an, dass der Benutzer nur die Namen der vorhandenen Dateien in das Feld File Name Eintrag eingeben kann. Wenn dieses Flag angegeben ist und der Benutzer einen ungültigen Namen eingibt, zeigt die Dialogfeld im Feld Prozedur eine Warnung in einem Meldungsfeld angezeigt. Wenn dieses Flag angegeben ist, wird das Flag OFN_PATHMUSTEXIST auch verwendet. | |
| OFN_HIDEREADONLY | |
| Blendetnur das Kontrollkästchen Lesen . | |
| OFN_LONGNAMES | |
| Für alten Stil Dialogfelder verursacht dieses Flag im Dialogfeld, lange Dateinamen zu verwenden. Wenn dieses Flag nicht angegeben ist, oder wenn auch das OFN_ALLOWMULTISELECT-Flag festgelegt ist, verwenden Sie alten Stil Dialogfelder kurze Dateinamen (8.3-Format) für Dateinamen mit Leerzeichen. Explorer-Stil Dialogfelder dieses Flag zu ignorieren und immer lange Dateinamen anzeigen. |
|
| OFN_NOCHANGEDIR | |
| Stellt das aktuelle Verzeichnis auf den ursprünglichen Wert wieder her, wenn der Benutzer das Verzeichnis bei der Suche nach Dateien geändert. | |
| OFN_NODEREFERENCELINKS | |
| Leitet das Dialogfeld um den Pfad und den Dateinamen der ausgewählten Verknüpfung zurückzugeben (.LNK) Datei. Wenn dieser Wert nicht angegeben wird, gibt das Dialogfeld den Pfad und Dateinamen der Datei verwiesen wird, durch die Verknüpfung | |
| OFN_NOLONGNAMES | |
| Für alten Stil Dialogfelder dieses Flag bewirkt, dass das Dialogfeld verwenden Sie kurze Dateinamen (8.3-Format). Explorer-Stil Dialogfelder dieses Flag zu ignorieren und immer lange Dateinamen anzeigen. |
|
| OFN_NONETWORKBUTTON | |
| Ausgeblendet und deaktiviert die Schaltfläche Netzwerk. | |
| OFN_NOREADONLYRETURN | |
| Gibt an, dass die zurückgegebene Datei keinen Lesen nur das Kontrollkästchen aktiviert und nicht in ein Verzeichnis schreibgeschützt ist. | |
| OFN_NOTESTFILECREATE | |
| Gibt an, dass die Datei nicht erstellt wird, bevor das Dialogfeld geschlossen wird. Dieses Flag sollte angegeben werden, wenn die Anwendung die Datei auf einer Netzwerkfreigabe erstellen-Nonmodify speichert. Wenn eine Anwendung dieses Flag gibt an, überprüft die Bibliothek nicht für Schreibschutz, mit vollen Festplatten, eine offene Laufwerkverriegelung oder Netzwerkzugriffsschutz. Anwendungen, die mit diesem Flag müssen Datei sorgfältig, Operationen da eine Datei erneut geöffnet werden kann nicht, wenn es geschlossen ist. | |
| OFN_NOVALIDATE | |
| Gibt an, dass die Standarddialogfelder ungültige Zeichen im zurückgegebenen Dateinamen zulassen. In der Regel verwendet die aufrufende Anwendung eine Hook-Prozedur, die den Dateinamen mithilfe der FILEOKSTRING-Nachricht überprüft. Wenn das Textfeld in das Edit-Steuerelement leer ist oder nur Leerzeichen enthält, werden die Listen von Dateien und Verzeichnissen aktualisiert. Wenn das Textfeld in das Edit-Steuerelement etwas anderes enthält, werden nFileOffset und nFileExtension auf Werte erzeugt durch Analysieren von Text festgelegt. Keine Standarderweiterung ist in den Text aufgenommen, noch Text kopiert von LpstrFileTitle angegebenen Puffer. | |
| Wenn der durch nFileOffset angegebene Wert ist kleiner als 0 (null), lautet der Dateiname ungültig. Andernfalls ist der Dateiname gültig und nFileExtension und nFileOffset verwendet werden kann, als ob das OFN_NOVALIDATE-Flag nicht angegeben worden. | |
| OFN_OVERWRITEPROMPT | |
| Bewirkt, dass das Speichern als Dialogfeld um ein Meldungsfeld zu generieren, wenn die ausgewählte Datei bereits vorhanden ist. Der Benutzer muss bestätigen, ob die Datei überschrieben werden soll. | |
| OFN_PATHMUSTEXIST | |
| Gibt an, dass der Benutzer nur gültige Pfade und Dateinamen eingeben kann. Wenn dieses Flag verwendet wird, und der Benutzer einen ungültigen Pfad und den Dateinamen im Feld File Name Eintrag gibt, zeigt die Dialogfeld Feld Funktion eine Warnung in einem Meldungsfeld. | |
| OFN_READONLY | |
| Bewirkt, dassnur das Kontrollkästchen Lesenzunächst überprüft werden, wenn das Dialogfeld erstellt wird. Dieses Flag gibt den Status der Lesenur das Kontrollkästchen, wenn das Dialogfeld geschlossen wird . | |
| OFN_SHAREAWARE | |
| Gibt an, dass bei einen Aufruf der OpenFile -Funktion fehlschlägt wegen einer Zugriffsverletzung Netzwerk, der Fehler ignoriert, und das Dialogfeld gibt den ausgewählten Dateinamen zurück. Wenn dieses Flag nicht festgelegt wird, benachrichtigt das Dialogfeld-Ihr Hook-Prozedur tritt eine Zugriffsverletzung Netzwerk für den vom Benutzer angegebenen Dateinamen. Wenn Sie das OFN_EXPLORER-Flag festgelegt, sendet das Dialogfeld die Meldung CDN_SHAREVIOLATION an die Hook-Prozedur. Wenn Sie OFN_EXPLORER nicht setzen, sendet das Dialogfeld die SHAREVISTRING registrierte Nachricht an die Hook-Prozedur. |
|
| OFN_SHOWHELP | |
| Bewirkt, dass das Dialogfeld die Schaltfläche Hilfe anzeigen. Das HwndOwner -Mitglied muss angeben, dass das Fenster die HELPMSGSTRING empfangen Nachrichten registriert, die im Dialogfeld sendet, wenn der Benutzer die Schaltfläche Hilfe klickt. Ein Dialogfeld mit einer Explorer-Stil sendet eine CDN_HELP -Benachrichtigung an-Ihr Hook-Prozedur, wenn der Benutzer die Schaltfläche Hilfe klickt. |
|
Wenn der Benutzer mehr als eine Datei auswählt, ist nFileOffset der Offset zu dem ersten Dateinamen.
Wenn das OFN_EXPLORER-Flag in den Flags nicht festgelegt ist, ist LpfnHook ein Zeiger auf ein OFNHookProcOldStyle -Hook-Prozedur, die für das Dialogfeld Nachrichten empfängt. Die Hook-Prozedur zurückgibt false fest, um einer Nachricht zu verwerfen oder die Standard-Dialogfeldprozedur die Nachricht weiterleiten.
Wenn OFN_EXPLORER festgelegt ist, ist LpfnHook ein Zeiger auf ein OFNHookProc -Hook-Prozedur. Die Hook-Prozedur empfängt Benachrichtigungen aus dem Dialogfeld gesendet. Die Hook-Prozedur empfängt auch Nachrichten für zusätzliche Steuerelemente, die Sie definiert, indem Sie eine untergeordnetes Dialogfeldvorlage angeben. Die Hook-Prozedur empfängt keine Nachrichten für die standardmäßigen Steuerelemente im Dialogfeld Standard.
Wenn das OFN_EXPLORER-Flag festgelegt ist, verwendet das System die angegebene Vorlage ein Dialogfeld erstellen, das ein untergeordnetes Element im Dialogfeld Standard-Explorer-Stil ist. Wenn das OFN_EXPLORER-Flag nicht gesetzt ist, verwendet das System die Vorlage eine Mediäval Dialogfeld erstellen, die das Standard-Dialogfeld ersetzt.
&Nbsp; Windows NT: Version 3.1 oder höher erforderlich.
Windows:Erfordert Windows 95 oder höher.
Windows CE:Version 1.0 oder höher benötigt.
Header:In commdlg.h deklariert.
Unicode:Als Unicode und ANSI Strukturen definiert.
Übersicht über Common Dialog Box Library, gemeinsamen Dialog Box Strukturen, GetOpenFileName GetSaveFileName, SHGetSpecialFolderLocation