Когда фокус ввода принадлежит окну-списку, пользователь может применять для выбора элемента списка, кроме мыши, также и клавиши перемещения курсора, пробел и символьные клавиши.
Окно-список передает сообщение WM_COMMAND в родительское окно. Параметры сообщения представлены в следующей таблице:
Параметры Описание
wParam Идентификатор дочернего окна
LOWORD (lParam) Индекс дочернего окна
HIWORD (lParam) Код сообщения
В большинстве случаевокно-список используют, чтобы дать возможность пользователям выбрать файл с диска. Чтобы заполнить окно–список именами файлов и каталогов, приложение должно передать окну-списку сообщение LB_DIR:
Младший байт параметра 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.