Поделиться через


Функция DlgDirListA (winuser.h)

Заменяет содержимое поля списка именами подкаталогов и файлов в указанном каталоге. Список имен можно отфильтровать, указав набор атрибутов файла. Список может включать сопоставленные диски.

Синтаксис

int DlgDirListA(
  [in]      HWND  hDlg,
  [in, out] LPSTR lpPathSpec,
  [in]      int   nIDListBox,
  [in]      int   nIDStaticPath,
  [in]      UINT  uFileType
);

Параметры

[in] hDlg

Тип: HWND

Дескриптор диалогового окна, содержащего поле списка.

[in, out] lpPathSpec

Тип: LPTSTR

Указатель на буфер, содержащий строку, завершающую значение NULL, которая задает абсолютный путь, относительный путь или имя файла. Абсолютный путь может начинаться с буквы диска (например, d:) или UNC-имени (например, \<i>имени компьютера\имени общего ресурса).

Функция разделяет строку на каталог и имя файла. Функция выполняет поиск по каталогу имен, соответствующих имени файла. Если строка не указывает каталог, функция выполняет поиск в текущем каталоге.

Если строка содержит имя файла, имя файла должно содержать по крайней мере один подстановочный знак (? или *). Если строка не содержит имя файла, функция ведет себя так, как если бы вы указали подстановочный знак звездочки (*) в качестве имени файла. Все имена в указанном каталоге, которые соответствуют имени файла и имеют атрибуты, указанные параметром uFileType, добавляются в поле списка.

[in] nIDListBox

Тип: int

Идентификатор поля списка в диалоговом окне hDlg. Если этот параметр равен нулю, DlgDirList не пытается заполнить поле списка.

[in] nIDStaticPath

Тип: int

Идентификатор статического элемента управления в диалоговом окне hDlg. DlgDirList задает текст этого элемента управления для отображения текущего диска и каталога. Этот параметр может быть равен нулю, если вы не хотите отображать текущий диск и каталог.

[in] uFileType

Тип: UINT

Указывает атрибуты файлов или каталогов, которые нужно добавить в поле списка. Этот параметр может быть одним или несколькими из следующих значений.

Ценность Значение
DDL_ARCHIVE
Включает архивированные файлы.
DDL_DIRECTORY
Включает вложенные каталоги. Имена подкаталогов заключены в квадратные скобки ([ ]).
DDL_DRIVES
Все сопоставленные диски добавляются в список. Диски перечислены в виде [-x-], где x — буква диска.
DDL_EXCLUSIVE
Включает только файлы с указанными атрибутами. По умолчанию файлы чтения и записи перечислены, даже если DDL_READWRITE не указан.
DDL_HIDDEN
Включает скрытые файлы.
DDL_READONLY
Включает файлы только для чтения.
DDL_READWRITE
Включает файлы чтения и записи без дополнительных атрибутов. Это параметр по умолчанию.
DDL_SYSTEM
Включает системные файлы.
DDL_POSTMSGS
Если задано, DlgDirList использует функцию PostMessage для отправки сообщений в поле списка. Если параметр не задан, DlgDirList использует функцию SendMessage.

Возвращаемое значение

Тип: int

Если функция выполнена успешно, возвращаемое значение ненулевое.

Если функция завершается ошибкой, возвращаемое значение равно нулю. Например, если строка, указанная lpPathSpec, не является допустимым путем, функция завершается ошибкой. Чтобы получить расширенные сведения об ошибке, вызовите.

Замечания

Если lpPathSpec указывает каталог, DlgDirListComboBox изменяет текущий каталог на указанный каталог перед заполнением поля списка. Текст статического элемента управления, определяемого параметром nIDStaticPath, имеет имя нового текущего каталога.

DlgDirList отправляет сообщения LB_RESETCONTENT и LB_DIR в поле списка.

Если uFileType включает флаг DDL_DIRECTORY и lpPathSpec указывает каталог первого уровня, например C:\TEMP, поле списка всегда будет содержать запись ".". Это верно, даже если корневой каталог имеет скрытые или системные атрибуты, а DDL_HIDDEN и флаги DDL_SYSTEM не указаны. Корневой каталог тома NTFS содержит скрытые и системные атрибуты.

В списке каталогов отображаются длинные имена файлов, если таковые есть.

Примеры

Примеры см. в следующих разделах: создание списка каталогов в списка с одним выделением и создание поля списка с несколькими выборами.

Заметка

Заголовок winuser.h определяет DlgDirList как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка winuser.h (включая Windows.h)
библиотеки User32.lib
DLL User32.dll

См. также

DlgDirListComboBox

DlgDirSelectComboBoxEx

DlgDirSelectEx

Справочник