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 необходимо вызывать для каждого флажка, состояние которого необходимо контролировать.


 

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

14174. Государственная поддержка малого бизнеса в Алтайском крае 2010 г 290.5 KB
  СОДЕРЖАНИЕ ВВЕДЕНИЕ Глава 1. Теоретические аспекты государственного регулирования развития малого предпринимательства 1.1 Малое предпринимательство: сущность и содержание 1.2 Основные проблемы и факторы сдерживающие развитие малого предпринимательства в Росси
14175. Дознание как форма предварительного расследования в уголовном процессе 202.88 KB
  Оглавление Введение 1. Обзор и анализ нормативноправовых актов и литературы по становлению и развитию дознания в уголовном процессе России 1.1 Историкоправовые аспекты становления и развития института дознания 1.2 Становлени
14176. Законодательная власть в зеркале СМИ (на примере ведущих российских изданий) 515.5 KB
  Цель нашей дипломной работы – проанализировать, насколько полно и объективно ведущие российские издания освещают как саму деятельность органов законодательной власти, так и новые законы, законопроекты
14177. Маркетинг предприятий розничной торговли ТОО «Капан» ВКО г. Аягоза 273.5 KB
  Дипломная работа на тему: Маркетинг предприятий розничной торговли ТОО Капан ВКО г. Аягоза Студент: Капанов Б. К. Научный руководитель: Темиргалиева Ф. Э. Содержание Введение Глава 1. Маркетинговый анализ лекарственных препаратов на фармацевтическ...
14178. Анализ методики и организации учета и анализа товарооборота в розничной торговле на примере ООО Торгового дома «Агат» 578.5 KB
  Целью данной дипломной работы является изучение существующей методики и организации учета и анализа товарооборота в розничной торговле на примере ООО Торгового дома «Агат».
14179. Обзор рынка страхования в Российской Федерации на современном этапе, агрострахование 674.5 KB
  Содержание Введение 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ СТРАХОВАНИЯ 1.1 Сущность и функции страхования 1.2 Обзор рынка страхования в Российской Федерации на современном этапе 1.3 Правовое регулирование в сфере страхования 2. Организационноэкономическая характеристика хозя...
14180. ОБЩИЕ ТРЕБОВАНИЯ К РЕКЛАМЕ 114.96 KB
  ОБЩИЕ ТРЕБОВАНИЯ К РЕКЛАМЕ ОГЛАВЛЕНИЕ Ведение Глава 1. Основные требования к рекламе. Ненадлежащая реклама 1.1. Понятие рекламы как объекта информационных правоотношений 1.2. Перечень общих требований к рекламе 1.3. Недобросовестная и недостоверная реклама 1.4. О...
14181. Особенности, формы и предпосылки развития государственного предпринимательства Таймырский округ 522.5 KB
  Особенности развития предпринимательской деятельности Администрации муниципального образования (на примере Таймырского Долгано-Ненецкого муниципального района). Анализ предпринимательской деятельности Администрации Таймырского Долгано-Ненецкого муниципального района
14182. Оценка предпринимательских рисков и методы их снижения на примере ООО «ТД «Евронорд» 460 KB
  Оценка предпринимательских рисков и методы их снижения на примере ООО ТД Евронорд Содержание Введение 1 Институциальные аспекты управления риском 1.1 Сущность содержание и виды рисков 1.2 Приемы и методы управления риском 1.3 Процесс управления рисками на п...