Студопедия

КАТЕГОРИИ:

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

Добавление переменных для работы с флажками




Мы можем воспользоваться ClassWizard и связать с флажками специальные переменные, которые будут изменять состояние флажков. Как говорилось ранее, все переменные для работы делятся на 2 категории: одни представляют отдельные свойства элемента, а другие — весь элемент. В данном случае нам нужна переменная, соответствующая элементу в целом.

1. Запустите Class Wizard и перейдите на вкладку Member Variables.

2. Щелкните на идентификаторе первого флажка  IDC_CHECK1 и нажмите кнопку Add Variable. Открывается окно Add Member Variable.

3. Присвойте созданной переменной имя m_check1; убедитесь, что в списке Categoryвыбрана строка Control, а в списке Variable Type— строка BOOL.

14. Нажмите кнопку ОК и повторите описанные действия для трех оставшихся флажков, присвоив переменным имена m_check2 — m_check4. В результате каждый флажок будет иметь собственную переменную.

5. Остается лишь задать нужное состояние флажков в обработчиках для каждого переключателя. Это делается по аналогии с обработчикомOnRadio1():

void CSellerDlg: :OnRadio1()

{

        m_check1 = true;

        m_check2 = true;

        m_check3 = true;

        m_check4 = true;

}

6. Занесите в текстовое поле строку с ценой букета и вызовите UpdateData():

void CSellerDlg::OnRadio1()

{

        m_check1 = true;

        m_check2 = true;

        m_check3 = true;

        m_check4 = true;

        m_text = "Цена: $4.95";

        UpdateData(false);

}

7. Проделайте то же самое для оставшихся переключателей, чтобы организовать вывод информации для каждого типа букета:

void CSellerDlg::OnRadio2()

{

        m_check1 = true;

        m_check2 = false;

        m_check3 = true;

        m_check4 = false;

        m_text = "Цена: $3.95";

        UpdateData(false);

}

 void CSellerDlg::OnRadio3()

{

        m_check1 = false;

        m_check2 = true;

        m_check3 = false;

        m_check4 = true;

        m_text = "Цена: $2.95";

        UpdateData(false);

}

void CSellerDlg::OnRadio4()

{

        m_check1 = false;

        m_check2 = false;

        m_check3 = false;

        m_check4 = false;

        m_text = "Цена: $0.00";

        UpdateData(false);

}

9. Программа seller готова. Мы создали два групповых поля, занесли в них переключатели и флажки и связали управляющие элементы с кодом программы. Запустите приложение.

10. Когда пользователь устанавливает один из переключателей, программа показывает, какие цветы входят в соответствующий тип букета.

11. Когда пользователь устанавливает переключатель для другого типа, состояние флажков изменяется. Программа seller успешно работает, а мы научились работать с флажками и переключателями одновременно.

Списки, комбинированные поля и ползунки

Сейчас мы рассмотрим три новых вида элементов: списки, комбинированные поля и слайдеры. Любой программист на Visual C++ должен уметь работать с этими популярными элементами.

Наверняка вам приходилось пользоваться списками, — управляющими элементами, предоставляющими пользователю перечень из нескольких строк. Чтобы выделить строку, надо щелкнуть на ней один раз, а чтобы выбрать — дважды. В своей программе мы добавим в список дюжину строк и узнаем, как определить, какая из них выбрана пользователем.

Комбинированные поля тоже часто встречаются в Windows. Они представляй собой сочетание текстового поля, раскрывающегося списка и кнопки, с помощью которой пользователь открывает список. Здесь мы научимся добавлять списки комбинированных полей новые строки и определять строку, выбранную пользователем.

Ползунки появились относительно недавно, но успели завоевать широкую известность среди программистов. Главным элементом ползунка является небольшой бегунок, который перемещается по "шкале", подобно регуляторам на стереосистеме. Мы узнаем, как настроить ползунок и определить текущее положение бегунка при его перемещении пользователем.

Работа со списками

В первом примере мы создадим список с дюжиной строк и выведем его в диалоговом окне. Поскольку такое количество строк не поместится в списке, справа от него будет находиться полоса прокрутки.

Когда пользователь дважды щелкает на одной из строк, ее содержание появляется в текстовом поле.  

 Данный пример, как и все остальные программы, построен на базе диалогового окна, поскольку такой подход облегчает добавление управляющих элементов и связывание их с кодом программы через ClassWizard. Создайте программу на базе диалогового окна при помощи AppWizard и присвойте ей имя lists.

ПОДСКАЗКА: Управляющие элементы можно отображать и в обычном (не диалоговом) окне, но в этом случае вы не сможете пользоваться редактором диалоговых окон для их создания и размещения. Например, чтобы включить в окно список, вам придется объявить новый объект класса списков, CListBoxи вызвать для него метод Create(). Вам придется задать все стили; не забудьте включить в их число WS_VISIBLE, чтобы список отображался на экране. Учтите, что в этом случае вы не сможете пользоваться ClassWizard, поэтому вам придется самостоятельно делать все, что обычно за вас делает мастер — редактировать схемы сообщений, задавать идентификаторы ресурсов и т. д.

Давайте разместим в диалоговом окне элементы, необходимые для работы программы. Дважды щелкните в окне просмотра Visual C++ на идентификаторе ресурса диалогового окна, IDD_LISTS_DIALOG, чтобы запустить редактор диалоговых окон.

Прежде всего, нам понадобится список (пятый сверху в правом столбце палитры). Перетащите его в диалоговое окно и измените размеры.

Теперь добавьте текстовое поле и две надписи.

Использование надписей для вывода текста

Надписи используются исключительно для вывода текста, который остается более или менее постоянным. Как нетрудно догадаться по названию, они применяются для пометки других элементов и для того, чтобы подсказать пользователю назначение последних. В палитре инструмент для создания надписей располагается вторым сверху в левом столбце. Перетащите надпись в диалоговое окно и введите в нее текст. Дважды щелкните строку; по мере ввода буквы немедленно появляются в надписи.

 ПОДСКАЗКА: Если задержать указатель мыши над инструментом для создания надписей, возникает подсказка Static Text.   

Разместите еще одну надпись над текстовым полем, где будет отображаться выбранная строка, и занесите в нее текст, который Вы выбрали: Подготовка диалогового окна завершена. Теперь мы должны добавить в список строки, из которых предстоит выбирать пользователю.  










Последнее изменение этой страницы: 2018-04-12; просмотров: 366.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...