В большинстве случаевокно-список используют, чтобы дать возможность пользователям выбрать файл с диска. Чтобы заполнить окно–список именами файлов и каталогов, приложение должно передать окну-списку сообщение LB_DIR:
SendMessage ( hListWnd, LB_DIR, wAttr, (LONG) lpszFileSpec);
Младший байт параметра wAttr определяет атрибуты файлов, отображаемых в окне–списке.Они идентичны с атрибутами файлов MS–DOS:
wAttr
| Атрибуты файлов
|
0x0000
0x0001
0x0002
0x0004
0x0010
0x0020
| Обычные файлы
Файлы только для чтения
Скрытые файлы
Системные файлы
Подкаталоги
Бит архивации (установлен, когда файл не выгружен)
|
Старший байт переменной wAttr обеспечивает дополнительные возможности управления списком файлов:
wAttr
| Опция
|
0х4000
0х8000
| Добавить символ устройства
Только поиск
|
Например, для того чтобы включить в окно-список все файлы, подкаталоги и символы устройств (литеры дисководов), переменная wAttr должна быть равна 0x4037.
Можно включить в список файлов только файлы с определенным расши–рением. Для этого параметр lParam сообщения LB_DIR содержит дальний указатель на строку, содержащую шаблон имени файла для поиска на дисках. Например, если параметр lParam сообщения указывает на строку «*с», то в список файлов будут включены только файлы с расширением «с». Параметр lParam не влияет на каталоги, содержащиеся в списке файлов.
Заметим, что символы дисковых устройств отображаются в следующем формате (диск А: ): [-A-]
Элемент «[..]» списка файлов позволяет переместиться на более высокий уровень каталога, а элемент, имеющий формат [SUBDIR], обозначает каталоги.
Windows не имеет функций для поиска файлов по шаблону, но их можно моделировать, создав окно-список файлов, не отображая его на экране. Для этого достаточно не использовать тип WS_VISIBLE при создании окна и, когда поиск файлов произведен, уничтожить окно-список, вызвав функцию DestroyWindow.