Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
43-70_otvety_na_teplogo.docx
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
88 Кб
Скачать
☆

55.Сообщения окна списка(listbox) и сообщения, посылаемые окну списка.

Список — это набор текстовых строк, который выводится на экран в виде

прокручиваемого в прямоугольнике столбца текста. Программа может добавлять или удалять строки в списке путем посылки сообщений оконной процедуре списка. Окно списка посылает сообщения WM_COMMAND своему родительскому окну, когда в списке выбирается какой-либо пункт. Родительское окно может определить, какой пункт списка был выбран. Окно списка почти всегда включает идентификатор стиля окна LBS_NOTIFY, что позволяет родительскому окну получать от окна списка сообщения WM_COMMAND. Используем функцию SendMessage для отправки сообщения окну списка.

Когда пользователь щелкает мышью над окном списка, окно списка получает фокус ввода. Родительское окно может предоставить управляющему (listbox control) окну списка фокус ввода с помощью вызова функции:

SetFocus(hwndList);

Если окно списка имеет фокус ввода, то для выбора пунктов списка также могут использоваться клавиши управления курсором, буквенные клавиши и клавиша <Spacebar>. Управляющее окно списка посылает сообщения WM_COMMAND своему родительскому окну. Значение параметров сообщения lParam и wParam то же, что и для кнопок управления и управляющих окон редактирования:

LOWORD (wParam) Идентификатор дочернего окна

HIWORD (wParam) Код уведомления

lParam Описатель дочернего окна

55А.Сообщения lb_dir ,атрибуты для выбора файлов, каталогов и логических дисков.

Самым мощным сообщением окон списка является сообщение LB_DIR. Следующий оператор заполняет список перечнем файлов каталога, иногда с подкаталогами и именами доступных дисков:

SendMessage(hwndList, LB_DIR, iAttr,(LPARAM) szFileSpec);

Использование атрибутов файлов

Параметр iAttr — это код атрибута файла. Младший значащий байт — обычный атрибут файла, используемый при вызовах функций MS-DOS:

Параметр iAttr Значение Атрибут

DDL_READWRITE 0x0000 Обычный файл

DDL_READONLY 0x0001 Файл только для чтения

DDL_HIDDEN 0x0002 Скрытый файл

DDL_SYSTEM 0x0004 Системный файл

DDL_DIRECTORY 0x0010 Подкаталог

DDL_ARCHIVE 0x0020 Файл с установленным архивным битом

Старший байт обеспечивает некоторый дополнительный контроль:

Параметр iAttr Значение Опция

DDL_DRIVES 0x4000 включение имен дисков

DDL_EXCLUSIVE 0x8000 включать только файлы с указанными атрибутами

Когда значение iAttr сообщения LB_DIR равно DDL_READWRITE, то в списке перечисляются обычные файлы, файлы только для чтения и файлы с установленным архивным битом. Это соответствует логике, используемой функциями MS-DOS для поиска файлов. Если значение iAttr сообщения LB_DIR равно DDL_DIRECTORY, то в список, дополнительно к файлам, включаются имена подкаталогов в квадратных скобках. Если значение iAttr сообщения LB_DIR равно DDL_DRIVES | DDL_DIRECTORY, то в список добавляются буквенные идентификаторы всех доступных дисков, при этом они расположены между черточками. При установке в iAttr старшего бита перечисляются только файлы с установленными флагами, обычные файлы не включаются. Для программы резервного копирования файлов, например, можно перечислить только те файлы,

которые были изменены после последнего резервирования. В таких файлах установлен архивный бит, поэтому можно использовать DDL_EXCLUSIVE | DDL_ARCHIVE.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]