Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Элемент управления List Box






Окно со списком или список (List Box) – это модификатор информации, отображает информацию и одновременно служит для выбора информации. Для создания такого элемента в программе используется класс CListBox. Каждый элемент списка – строка типа CString. Каждая строка имеет порядковый номер (индекс), нумерация строк начинается с нуля. Чтобы включить в программу элемент List Box, выполните следующие действия.

Поместите элемент на диалоговую панель.

Настроийте свойства элемента; измените, если нужно, идентификатор окна или оставьте идентификатор по умолчанию – IDC_LISTBOX1; из свойств обратите внимание на свойство Sort (Сортировка), которое обычно установлено по умолчанию. В этом случае новый элемент не добавляется в конец списка, его положение в списке определяется в результате сортировки. В зависимости от решаемой задачи можно этому свойству оставить значение «установлено» или отменить сортировку.

Создайте с помощью ClassWizard переменную, представляющую окно со списком в программе; для этой переменной установите категорию control, тип – CListBox, имя – m_ListBox1.

Теперь окно со списком готово к работе. Можно создать методы диалоговой панели для добавления элемента списка, удаления элемента из списка, выбора элемента списка и т. д., в которых будут использованы соответствующие методы класса CListBox (табл. 21.2).

Таблица 21.2

Методы класса CListBox Описание метода
int AddString(LPCTSTR lpszItem); Добавление строки в список lpszItem – указатель на строку
int InsertString(int nIndex, LPCTSTR lpszItem); Вставка строки текста в список на указанную позицию lpszItem – указатель на строку nIndex – порядковый номер в списке вставляемого элемента Возвращаемое значение: номер позиции, в которую был вставлен текст
int DeleteString(UINTnIndex); Удаление строки с заданным номером nIndex – номер удаляемого элемента
int SetSel(int nIndex, BOOLbSelect=TRUE); Выбор элемента списка с заданным номером nIndex – номер выделяемого элемента
int GetCount(); Определение количества строк в списке
int GetCurSel(); Определение номера выделенной строки
void GetText(int nIndex, CString& rString); Получение элемента списка c заданным номером nIndex в виде значения типа CString
int SelectString(int nStartAfter, LPCTSTR lpszItem); Выделение строки, содержащей заданный текст. nStartAfter – номер строки, предшествующей началу поиска, для поиска с начала списка задать параметру значение –1. lpszItem – указатель на искомую строку. Возвращаемое значение: номер выделенной строки

В качестве примера рассмотрим фрагменты программы ListBX, которая формирует список (добавляет в него элементы), удаляет из списка элемент с номером, заданным пользователем. Программа выполняет проверку существования элемента списка с заданным номером. Если такой элемент не существует, выдается сообщение об ошибке.

Элементы управления проекта ListBX:

окно со списком IDC_LIST, связанная переменная m_List (категория control),

окно редактирования IDC_EDIT, связанная переменная m_Edit (категория value, тип CString),

окно редактирования IDC_NUMBER, связанная переменная m_Number (категория value, тип int),

кнопка добавления строки в список IDC_ADD_BUTTON,

кнопка удаления строки с заданным номером из списка IDC_DELETE_BUTTON.

//Добавление строки в список

void CListBXDlg:: OnAddButtonClicked()

{

UpdateData(TRUE);

m_List.AddString(m_Edit);

}

//Удаление из списка строки с заданным номером

void CListBXDlg:: OnDeleteButtonClicked()

{

UpdateData(TRUE);

if(m_Number> =0& & m_Number < m_List.GetCount())

//Проверка правильности

//ввода номера удаляемого элемента

m_List.DeleteString(m_Number); //Удаление

//элемента

else

MessageBox(" Нет такой строки! ");

}

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.