69658

DDX и переключатели

Практическая работа

Информатика, кибернетика и программирование

Подобно тому, как функция DDX DDX_Text позволяет ассоциировать элемент управления с переменной-членом, содержащей текст этого элемента управления, специальная функция DDX DDX_Radio организует взаимодействие с переключателями.

Русский

2014-10-08

37.5 KB

0 чел.

Тема 12. DDX и переключатели

Подобно тому, как функция DDX DDX_Text позволяет ассоциировать элемент управления с переменной-членом, содержащей текст этого элемента управления, специальная функция DDX DDX_Radio организует взаимодействие с переключателями. Эта функция позволяет связать с группой переключателей переменную типа int (целочисленную). Обратите внимание, эта функция применяется не для всех переключателей, а только для первого переключателя в группе. Целочисленное значение содержит номер выбранного переключателя в группе (начиная с нуля), кроме того, значение -1 свидетельствует об отсутствии выбора.

/ В используемой автором версии среды разработки Visual Studio. NET функцию

/на заметку;     DDX_Radio приходится добавлять вручную. Хотелось бы надеяться, что в буду-*      .,„-•"';      тем этот процесс будет автоматизирован при помощи мастера Add Member Variable Wizard.

Итак рассмотрим, как все это можно сделать.

  1.  Добавьте в класс CButtonsDlg переменную-член типа int по имени m_iAnswer.
  2.  Измените идентификаторы ресурсов кнопок Yes (Да), No (Нет) и Maybe (Может быть) переключателя на IDC_BTN_YES, IDC_BTN_NO и IDC__BTN_MAYBE соответственно. Хоть это и не обязательно, но сделает код более понятным.
  3.  Добавьте в функцию CButtonsDlg: :DoDataExchangeBbi30B следующей функции (новая строка выделена полужирным шрифтом).

void CButtonsDlg::DoDataExchange(CDataExchange*  pDX) {

СDialog::DoDataExchange(pDX);

DDX_Radio(pDX,   IDC_BTN_YES,   m_iAnswer); 1

4. Измените идентификатор ресурса кнопки Get Values (Получить значения) на
IDC_GET_RADIOBUTTON__VALUES, а также добавьте обработчик события щелчка на

ней. Обработчик должен отображать текущее состояние переключателей при каждом

щелчке на кнопке Get Values. Его код должен выглядеть следующим образом:

void   CButtonsDlg::OnBnClickedGetRadiobuttonValues()

{

if   (UpdateDataO )

{

CString  str/

str.Format("Radio  button  values   (%ld):\r\n\r\n"

"Yes   =  %s\r\n"

"No  -  %s\r\n"

"Maybe  =  %s",

m_iAnswer,

(0   ==  m^iAnswer   ?   "On"   :   "Off"),

(1   == m_iAnswer   ?   "On"   :   "Off"),

(2   ==  m_iAnswer   ?   "On"    :    "Off")); AfxMessageBox(str); } }

Обращение к функции DDX_Radio для элемента управления, не обладающего азамепсу;    стилем ws_group (Group = True), приведет к ошибке, поскольку Она примени-„s.-<f      ма лишь к первому элементу в группе переключателей.

Откомпилировав и запустив приложение, можно убедиться, что этот обработчик позволяет установить взаимодействие между кнопкой и переключателем. Теперь рассмотрим применение элемента управления флажок.

Элемент управления флажок

Флажок (checkbox) представляет собой квадратную кнопку со строкой текста описания. Этот элемент управления используется в тех случаях, когда пользователю необходимо предоставить на выбор любое количество параметров, совместимых между собой. Подобно переключателям, флажки обычно объединяют внутри элемента управления группа, чтобы пользователям была интуитивно понятна взаимосвязь между ними. Диалоговое окно Options среды разработки Visual Studio .NET, например, содержит несколько страниц, где флажки организованы именно таким образом.

Флажки бывают четырех типов: стандартный, автоматический, на три состояния и автоматический на три состояния. Им соответствуют константы стиля BS^CHECKBOX, BS_AUTOCHECKBOX, BS_3STATEh BS_AUT03STATE.

Каждый стиль подразумевает, по крайней мере, два состояния: установлен (checked), когда внутри квадрата отображается символ галочки, или сброшен (unchecked) — символ галочки отсутствует. Кроме того, флажок с тремя состояниями может находиться в неопределенном состоянии (indeterminate), когда флажок закрашен серым цветом. Вот когда вступает в игру значение BST_INDETERMINATE, которое можно передать функции CButton::SetCheck

Добавим в демонстрационное приложение данной главы еще одну группу флажков и кнопку Get Values для них (как и для переключателей в прошлом разделе). Поскольку оба типа элементов управления аналогичны и необходимый для их реализации код практически одинаков, не будем здесь приводить подробную инструкцию по его созданию. Достаточно лишь краткого описания основных этапов.

Обработчик события щелчка на флажке создается самым обычным способом — двойным щелчком на элементе управления в редакторе ресурсов диалогового окна.

С элементом управления флажок может быть ассоциирован объект класса CButton, a его функции GetCheck и SetCheck могут быть использованы для возвращения и установки состояния флажка. Значения констант для флажков, рассчитанных на три состояния, приведены в табл. 10.3.

Для привязки переменной-члена типа int к флажкам в группе можно воспользоваться специальной функцией DDX DDX_Check. Однако в отличие от функции DDX_Radio, связывающей одну целочисленную переменную (содержащую индекс выбранной кнопки) с группой переключателей, переменной, подключенной при помощи функции DDX_Check, присваивается значение 1 или 0 в зависимости от того, выбран ли данный флажок или нет. Следовательно, функцию DDX_Check необходимо вызывать для каждого флажка, состояние которого необходимо контролировать.


 

А также другие работы, которые могут Вас заинтересовать

50959. Информационные основы контроля работы цифрового автомата 165 KB
  При возникновении какоголибо нарушения нормального функционирования результат будет неверным однако пользователь об этом не узнает если не будут предусмотрены меты для создания системы обнаружения возможной ошибки а с другой стороны должны быть проработаны меры позволяющие исправить ошибки. Система контроля совокупность методов и средств обеспечивающих определение правильности работы автомата в целом или его отдельных узлов а также автоматическое исправление ошибки. Ошибки в работе цифрового автомата могут быть вызваны либо выходом...
50960. Каналы передачи данных 104 KB
  Рассматривают три основных параметра сигнала существенных для передачи информации по каналу. Первый важный параметр это время передачи сигнала Tс. Следовательно общее условие согласования сигнала с каналом передачи информации определяется соотношением Однако соотношение выражает необходимое но недостаточное условие согласования сигнала с каналом.
50961. Сигналы и их характеристики 367.5 KB
  Например при выборе прибора для контроля технологического процесса может потребоваться знание дисперсии сигнала; если сигнал используется для управления существенным является его мощность и так далее. Рассматривают три основных параметра сигнала существенных для передачи информации по каналу. Первый важный параметр это время передачи сигнала Tx . Второй характеристикой которую приходится учитывать является мощность Px сигнала передаваемого по каналу с определенным уровнем помех Pz .
50962. Информация, сообщения, сигналы 70 KB
  Структурная схема системы передачи информации Классификация сигналов по дискретнонепрерывному признаку Квантование и кодирование сигналов Квантование по уровню Квантование по времени Лекция №5 Тема: Информация сообщения сигналы Структурная схема системы передачи информации Теория информации это наука о получении преобразовании накоплении отображении и передаче информации. В настоящее время существуют различные определения информации. Структурная схема одной из характерных информационных систем в общем случае может быть...
50963. Монтаж центрифуги прачечной 556.54 KB
  Важнейшим звеном в решении задач является дальнейшее развитие инициативы и творческой активности работников коммунальных предприятий, совершенствование производственных отношений, внедрение научной организации труд, повышение квалификации, овладение смежными профессиями.
50964. Критика А. Шопенгауэром концепции соотношения рассудка и разума в теории познания И. Канта 247.5 KB
  Идеи Шопенгауэра невозможно адекватно постичь без знания философии Канта. Структура и проблематика кантовской системы – вот та основа, на которой в первую очередь формируются взгляды Шопенгауэра. Это относится как к прямым заимствованиям у Канта
50965. Организация данных. Типы и структуры данных 96.5 KB
  Понятие тип данных делает манипулирование данными с использованием средств вычислительной техники абстрактным процессом и скрывает лежащее в основе обращения с ними представление их в виде двоичного кода. Виды типов данных: Аналоговые данные...
50966. Можливості використання здобутків теорії поля для моделювання та прогнозування реальної поведінки споживача 25.1 KB
  Передбачення майбутнього неможливе за багатьох обставин. Жоден екстрасенс не зможе сказати, наскільки успішним буде той чи інший товар, який підприємство планує вивести на ринок. Навіть з урахуванням безлічі математичних моделей, значної кількості змінних, залишається так звана «чорна скринька» свідомості споживача.
50967. Средства вычислительной техники. Принципы построения функциональных узлов и устройств ЭВМ 5.49 MB
  Для отечественных системотехников и специалистов в области ВТ отсутствие отечественных микросхем современного уровня компилируется допустимостью зарубежной элементной базы, поэтому Вам, как специалистам в области информационных технологий, изучение аппаратных средств ВТ, то есть цифровых узлов и устройств во всем ее разнообразии имеет большое практическое значение.