Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры по Леонову, 5семестр.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
503.3 Кб
Скачать

30. Работа со списками и выпадающими списками. Работа со списком

С помощью класса CListBox можно создать такой элемент управления Windows, как “список”. Список представляет собой прямоугольник, внутри которго находится последовательность текстовых или пользовательских элементов, которые пользователь может пролистывать и выбирать. Список может исп. , например, для просмотра имен файлов на диске.

Можно создавать списки, позволяющие выбирать толькоодну запись (элемент) или несколько одновременно (списки множ. выбора). Когда пользлватель выбирает запись в списке – она выделяется, и окно-список посылает род. окну извещение.

Инициализация

Создание объекта CLlistBox и собственно списка Windows в коде программы требует создания (вызова) конструктора и фук-ции Create:

BOOL CListBox::Create(

DWORD dwStyle,

Const RECT&rect,

CWnd*pParentWnd,

UINT nID) -// создает окно-список и присоединяет его к объекту ClistBox.; пар. dwStyle –задает стильсписка,

Изменения параметров списка

Int ClistBox ::GetHorizontalExtent () -//возвр. ширину списка в пикселях, в пределах которых список может прокручиваться по горизонали. Фу-цию можно исп. только для списков, имеющих гор. полосу прокрутки.

void CListBox ::SetHorizonrtalExtent(int cxExtent) - // уст. Ширину списка по гор., в пред. Кот. список может прокручиваться.

int ClistBox :: GetItemHeight ( int nIndex) -// возвр. высоту записи в списке в пикселях с указ. индексом nIndex

Фу-ции для работы с содержимым списка.

После того как список был создан необходимо его заполнить.

int CListBox ::AddString(LPCTSTR lpszItem) - // фу-ция добавляет строку текста в качестве элемента в список, возвращает индекс новой строки в списке. Пар. lpszItem – указывает на завершающуюся нулевым символом строку, которая должна быть добавлена к списку.

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

Для того, чтобы облегчить зап. списка в этих случаях, сущ. фу-ция Dir

int ClistBox ::Dir(UINT attr, LPCTSTR lpsz WildCard)- заполняет список содержимым директориев. Пар. attr определяет, файлы с какими атрибутами будут добавлены в список. Он может быть любой комбинацией из следующих значений:

0*0000 Файлы, доступные для чтения и записи

0*0001 Файлы, доступные только для чтения

0*0002 Скрытые файлы

0*0004 Системные файлы

0*0010 Подкаталоги

int ClistBox::DeleteString(UINT nIndex) - // удаляет из списка элемент, определяемым индексом (пар. nIndex),и возвращает кол-во оставшихся элементов.

viod ClistBox::ResetContent() - //удаляет все элементы из списка

Фу-ции предназнач. Для поиска строки в списке, совпадающей, начиная с первого символа, с заданной строкой.

int ClistBox::FindString(int nStartAfter, LPCTSTR lpszItem) - //осущ. только поиск строки в списке

int ClistBox::SelectString(int nStartAfter, LPCTSTR lpszItem) - //ищет и, выделяет найденную строку, если строка найдена, то она выделяется и, если нужно, список прокручивается стем, чтобы строка была стала видна. Пар. nStartAfter содержит индекс строки списка, нах. перед строкой, с кот. будет начат поиск. Если достигнут конец списка, то поиск будет продолжен с начала списка до строки, заданной в nStartAfter. Пар. lpszItem –указ. на оканчивающуюся нулевым символом строку, кот. должа быть найдена.

Операции над элементами списка

Фу-ции этой группы предназначены для получения ин-ции о конкретных элементах списка или, наоборот, для выделения эл. списка и связывания с ними 32-разрядных значений и указателей.

int ClistBox ::GetCount() - // возвращ. кол-во эл. в списке.

С первого взгляда может показаться, что эл. упр. “список” предназначен, в основном для тектовых эл. или для визуализации в виде списка произвольных данных, скорее, временного использования

int ClistBox ::GetSelItems(int nMaxItems,LPINT rgIndex) -// позволяет полусчить индексы строк, кот. выб. в данный момент в списке. Это знач. зад. пар. nMaxItems rgIndex. Пар. rgIndex –задает размерность буфера. В отличие от чисто “программных“ классов-контейнеров, описываемые списки отличаются в сторону визуализации и обладают меньшей гибкостью, требуемой для хранения объектов самых разных типов. Действит. эл.упр. “список” существует только тогда, когда он виден или, по крайней мере, может быть немедленно отображен.