int DlgDirList( LPTSTR lpPathSpec, int nIDListBox, int nIDStaticPath, UINT nFileType );
Возвращаемое значение
Отлично от нуля если функция успешна, иначе 0.
Параметры
lpPathSpec
Указатель на строку с нулевым символом в конце, которая содержит путь или имя файла. DlgDirList изменяет эту строку которая должна быть достаточно длинны чтобы содержать модификации.
nIDListBox
Определяет идентификатор списка. Если nIDListBox - 0, DlgDirList принимает что списка не существует и не пытается заполнять его.
nIDStaticPath
Определяет идентификатор статического текстового элемента управления, используемого, чтобы отобразить текущий диск и каталог. Если nIDStaticPath - 0, DlgDirList принимает, что такого текстового элемента управление не присутствует.
nFileType
Определяет атрибуты файлов, которые нужно отобразить. Это может быть любая комбинация следующих значений:
- DDL_READWRITE - Файлы данных чтения-записи без дополнительных атрибутов.
- DDL_READONLY - Файлы только для чтения.
- DDL_HIDDEN - Невидимые файлы.
- DDL_SYSTEM - Системные файлы.
- DDL_DIRECTORY - Каталоги.
- DDL_ARCHIVE - Архивные файлы.
- DDL_POSTMSGS - LB_DIR флажок. Если флажок LB_DIR установлен Windows помещает сообщения, сгенерированные DlgDirList в очереди прикладной программы иначе, они посланы непосредственно процедуре диалогового окна.
- DDL_DRIVES - Диски. Если флажок DDL_DRIVES установлен, флажок DDL_EXCLUSIVE установлен автоматически. Следовательно, чтобы создать список каталога который включает диски и файлы Вы должен вызвать DlgDirList дважды один раз с DDL_DRIVES для дисков и один раз с флажками для остальной части списка.
- DDL_EXCLUSIVE - Исключительный бит. Если исключительный бит установлен, только файлы определенного типа перечислены, иначе все файлы перечислены.
Заполняет список именами каталогов или файлов. DlgDirList посылает LB_RESETCONTENT и LB_DIR сообщения к списку. Он заполняет список, определенный nIDListBox с именами всех файлов, которые соответствуют пути, данному lpPathSpec. LpPathSpec параметр имеет следующую форму:
[drive:] [ [\u]directory[\idirectory]...\u] [filename]
В этом примере, диск - имя диска, каталог - допустимое имя каталога, и имя файла - допустимое имя файла, которое должно содержать по крайней мере одни подстановочные знаки. Вопросительный знак (?), что означает соответствие любой символ, и звездочка (*), означая соответствие любое число символов. Если Вы определяете строку с 0 длинами для lpPathSpec, или если Вы определяете только каталог, но не включают никакую спецификацию файла, строка будет изменена на "*.*".
Если lpPathSpec включает диск и имя каталога, текущий диск и каталог изменены на обозначенный диск и каталог прежде, чем список заполнен. Текстовый элемент управление, идентифицированное nIDStaticPath также модифицируется с новым диском или именем каталога. После того, как список заполнен, lpPathSpec модифицируется, удаляя диск или часть пути каталога.
Пример
// Если pDialog указывает на объект CDialog со списком
// c идентификатором IDC_DIRLIST, это обращение заполнит
// блок только не скрытыми подкаталогами в корне
// диска C:\.
pDialog->DlgDirList(_T("C:\\"), IDC_DIRLIST, 0, DDL_EXCLUSIVE | DDL_DIRECTORY);