Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СОВРЕМЕННЫЕ МЕТОДЫ ПРОГРАММИРОВАНИЯ.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
797.27 Кб
Скачать

21.14. Элемент управления Check Box

Флажок (Check Box) – предназначен для модификации информации; может иметь два (истина, ложь) или три (истина, ложь, не определено) состояния. Предоставляет пользователю возможность логического выбора. Хранит значение типа BOOL (int).

Последовательность работы с элементом Check Box следующая:

     установите элемент на диалоговой панели и настройте его свойства, допустим, элементу соответствует идентификатор IDC_CHECK1;

     установите переменную, связанную с элементом – дайте ей имя m_Check1, присвойте ей категорию – value, тип переменной – BOOL;

     инициализируйте элемент IDC_CHECK1 – присвойте связанной с ним переменной начальное значение TRUE или FALSE, для этого отредактируйте метод OnInitDialog() класса диалоговой панели, добавив после текста // TODO: Add extra initialization here (добавьте дополнительную инициализацию здесь) код: m_Check1=TRUE;

Не забудьте, что для отображения установленного значения элемента Check Box на экране должна быть вызвана функция UpdateData(FALSE).

21.15. Элемент управления 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("Нет такой строки!");

}