CWnd::DlgDirList
Füllt ein Listenfeld mit einer Datei oder einer Verzeichnisliste aus.
int DlgDirList(
LPTSTR lpPathSpec,
int nIDListBox,
int nIDStaticPath,
UINT nFileType
);
Parameter
lpPathSpec
Zeigt auf eine auf NULL endende Zeichenfolge, die den Pfad bzw. Dateinamen enthält.DlgDirList ändert diese Zeichenfolge, die lang genug, um die Änderungen zu enthalten sein soll.Weitere Informationen finden Sie im folgenden Abschnitt "Hinweis".nIDListBox
Gibt den Bezeichner eines Listenfelds an.Wenn nIDListBox 0 ist, wird DlgDirList an, dass kein Listenfeld vorhanden und nicht versucht, ein auszufüllen.nIDStaticPath
Gibt den Bezeichner des Steuerelements von statischem Text an, das verwendet wird, um das aktuelle Laufwerk und das Verzeichnis anzuzeigen.Wenn nIDStaticPath 0 ist, wird DlgDirList an, dass kein solches Textsteuerelement vorhanden ist.nFileType
Gibt die Attribute der angezeigt werden, Dateien an.Sie kann eine beliebige Kombination der folgenden Werte sein:DDL_READWRITE Lese-Schreibdatendateien ohne zusätzliche Attribute.
Schreibgeschützte Dateien DDL_READONLY.
DDL_HIDDEN versteckte Dateien.
DDL_SYSTEM Systemdateien.
DDL_DIRECTORY Verzeichnisse.
DDL_ARCHIVE gespeichert.
DDL_POSTMSGS LB_DIR-Flag.Wenn das LB_DIR-Flag festgelegt ist, wird Windows die Meldungen, die von DlgDirList in der Warteschlange der Anwendung generiert werden, Andernfalls werden sie direkt zur Dialogfeldprozedur gesendet.
DDL_DRIVES Laufwerk.Wenn das DDL_DRIVES-Flag festgelegt ist, wird das Flag DDL_EXCLUSIVE automatisch festgelegt.Daher um eine Verzeichnisliste zu erstellen, die Laufwerk und Dateien enthält, müssen Sie DlgDirList zweimal aufrufen: einmal mit dem DDL_DRIVES-Flagssatz und einmal mit den Flags für den Rest der Liste.
DDL_EXCLUSIVE Exklusivbit.Wenn das exklusive Bit festgelegt ist, nur Dateien des angegebenen Typs aufgeführten; andernfalls normale Dateien und Dateien des angegebenen Typs werden aufgeführt.
Rückgabewert
Ungleich 0 (null), wenn die Funktion erfolgreich; 0 andernfalls.
Hinweise
DlgDirList sendet LB_RESETCONTENT und LB_DIR Meldungen an das Listenfeld.Es füllt das Listenfeld aus, das von nIDListBox mit den Namen aller Dateien angegeben wird, die den Pfad entsprechen, der von lpPathSpec angegeben ist.
Der lpPathSpec-Parameter hat das folgende Format:
[drive:] [ [\u]directory[\idirectory]... \u] [filename]
In diesem Beispiel ist ein drive Laufwerkbuchstabe, ist directory ein gültiger Verzeichnisname, und Dateiname ist ein gültiger Dateiname, der einen Platzhalter mindestens enthalten muss.Die Platzhalter sind ein Fragezeichen (?), das Übereinstimmung jedes Zeichen bedeutet, und ein Sternchen (*) heißt Übereinstimmung eine beliebige Anzahl von Zeichen.
Wenn Sie eine 0 Längenzeichenfolge für lpPathSpec angeben oder wenn Sie nur einen Verzeichnisnamen angeben, jedoch keine Dateibeschreibung einfügen, wird die Zeichenfolge zu "*.*" geändert.
Wenn lpPathSpec einen Unterverzeichnissen und/oder Verzeichnisnamen enthält, werden das aktuelle Laufwerk und das Verzeichnis an den festgelegten Laufwerk und zum Verzeichnis geändert, bevor das Listenfeld gefüllt ist.Das Text-Steuerelement, das von nIDStaticPath identifiziert wird, wird ebenfalls mit dem neuen Unterverzeichnissen und/oder Verzeichnisnamen aktualisiert.
Nachdem das Listenfeld gefüllt ist, wird lpPathSpec aktualisiert, indem Sie den Unterverzeichnissen und/oder Verzeichnisteil des Pfads entfernt.
Beispiel
// If pDialog points to a CDialog object with a list box
// with the identifier IDC_DIRLIST, this call will populate
// the box with only the non-hidden subdirectories in the root
// directory of the C:\ drive.
TCHAR path[MAX_PATH];
_tcscpy_s(path, MAX_PATH, _T("C:\\"));
pDialog->DlgDirList(path, IDC_DIRLIST, 0, DDL_EXCLUSIVE | DDL_DIRECTORY);
Anforderungen
Header: afxwin.h