Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Добавление флажков в программу
Добавить три флажка и текстовое поле в диалоговое окно несложно. Перетащите их из палитры (флажок — четвертая сверху кнопка в левом столбце) и растяните текстовое поле. Редактор диалоговых окон снабжает флажки надписями Check1, Check2 и Check3. ПОДСКАЗКА: Чтобы изменить подпись рядом с флажком, щелкните на нем правой кнопкой мыши, выберите из появившегося контекстного меню команду Propertiesи введите в поле Captionновый текст. Как видите, с первой попытки нам не удалось выстроить флажки в аккуратный столбик. Точное выравнивание элементов всегда оказывается проблемой при проектировании диалогового окна со множеством элементов, однако на помощь приходит редактор диалоговых окон. Выравнивание элементов в редакторе диалоговых окон Для того чтобы выровнять флажки, нажмите клавишу Ctrl и, не отпуская ее, щелкните на каждом из них — вокруг флажков появятся пунктирные рамки. Верхний флажок следует щелкнуть в последнюю очередь, чтобы его маркеры размеров были черными, а маркеры двух других флажков — пустыми. Тем самым вы назначаете верхний флажок "эталоном", по которому будут выравниваться остальные элементы. Чтобы выровнять флажки по горизонтали, выполните команду Layout > Align. Открывается подменю — выберите в нем команду Left, чтобы выровнять флажки по левому краю эталонного флажка. Горизонтальное выравнивание закончено, теперь неплохо бы сделать вертикальные интервалы между флажками одинаковыми. Для этого выполните команду Layout > Space Evenly, после которой также открывается новое подменю. Выберите из него команду Down. Мы расположили управляющие элементы так, как нам хотелось. Теперь необходимо связать их с кодом программы. Связывание флажков с кодом программы ClassWizard поможет связать флажки с обработчиками сообщений. Откройте ClassWizard и найдите в нем идентификаторы трех флажков (IDC_CHECK1, IDC_CHECK2 и IDC_CHECK3). Создайте обработчики для них — для этого последовательно щелкните каждый идентификатор и дважды щелкните на сообщении ВN_СLICKEDв списке Messagesдля каждого из них. В результате будут созданы обработчики OnCheck1(), OnCheck2()иOnCheck3().При помощи ClassWizard создайте переменную m_text для содержимого текстового поля. Теперь откройте метод OnCheck1(): void CChecksDIg::OnCheck1() { // TODO: добавьте код для обработки оповещений от элемента } Данный метод вызывается, когда пользователь щелкает на первом флажке, при этом состояние управляющего элемента автоматически изменяется: если флажок был установлен, то после щелчка он снимается, и наоборот. Вы можете в любой момент определить текущее состояние флажка. Для этого следует подключить к нему переменную и вызвать метод GetCheck(). Класс флажков, как и класс переключателей, является производным от CButton, поэтому для флажков можно использовать методы этого класса, перечисленные в табл. 7.1. ПОДСКАЗКА: Кроме метода GetCheck(), который определяет состояние флажка, можно вызвать метод SetCheck(), чтобы принудительно установить или снять флажок. Таблица 7.1. Методы класса CButton
На самом деле разные виды кнопок отличаются друг от друга по стилю. Возможные стили кнопок перечислены в табл. 7.2. Таблица 7.2. Стили класса CButton
Когда пользователь щелкает на флажке, мы заносим в текстовое поле строку, указанную на 1 флажке: void CChecksDlg::OnCheck1() { m_text = "Щелчок на 1 флажке"; UpdateData(false); } Аналогичные строки будут выводиться и для флажков 2 и 3: void CChecksDlg::OnCheck2() { m_text = "Щелчок на 2 флажке"; UpdateData(false); } void CChecksDlg::OnCheck3() { m_text = "Щелчок на 3 флажке"; UpdateData(false); } Это все, что требовалось сделать. Запустите программу. Как видите, приложение определяет, какой флажок был выбран, сообщает о щелчке пользователю. Мы научились пользоваться флажками! В программе checksпользователь может одновременно установить все три флажка. Для некоторых приложений это не подходит — иногда требуется разрешить пользователю выбрать лишь один вариант из предложенного списка. Именно для этих ситуаций и были созданы переключатели. Работа с переключателями В следующей программе нам предстоит работать с тремя переключателями, расположенными по вертикали. Когда пользователь щелкает на одном из переключателей, в текстовом поле выводится соответствующая строка. Этот пример отличается от предыдущего не только типом управляющих элементов, но и тем, что в любой момент времени установлен может быть лишь один переключатель. В программе checked каждый переключатель устанавливался независимо, но в примере radiosработа управляющих элементов координируется. При помощи AppWizard создайте новую программу на базе диалогового окна, присвойте ей имя radios. Откройте диалоговое (оно же главное) окно с идентификатором IDD_RADIOS_DIALOG. Разместите в нем текстовое поле и три переключателя (переключатель — четвертый сверху инструмент в правом столбце). Редактор диалоговых окон снабдит последние подписями Radiol, Radio2и Radio3, но вы можете изменить их по своему усмотрению. Кроме того, выровняйте переключатели по вертикали и горизонтали, как это было сделано с флажками в предыдущем примере. Откройте ClassWizard, найдите в нем идентификаторы трех переключателей:IDC_RADIO1, IDС_RADIO2 иIDC_RADIO3, — создайте обработчик для всех переключателей —OnRadio1 (), OnRadio2() иOnRadio3(). Наконец, создайте переменную m_text и свяжите ее с содержимым текстового поля. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2018-04-12; просмотров: 491. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |