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


 

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

44858. Назначение и состав бурильной колонны. Типы и размеры труб. Материал для изготовления. Определение действующих нагрузок 23.19 KB
  Бурильная колонна состоит из ведущей трубы бурильных труб и утяжеленных бурильных труб соединяемых бурильными замками муфтами и переводниками. Утяжеленные бурильные трубы устанавливают в нижней части колонны и они служат для создания осевой нагрузки на долото. Между ведущей и утяжеленными трубами находятся бурильные трубы составляющие большую часть бурильной колонны. ВЕДУЩИЕ ТРУБЫ Ведущие трубы имеют квадратный шестигранный либо крестообразный профиль с концентрично расположенным круглым или квадратным отверстием для прохода промывочного...
44859. Драматургия 18 века 40.5 KB
  Тяжелая судьба постигла трагедию Княжнина Вадим Новгородский написанную в 1789 г. Эта трагедия без сомнения лучшее произведение Княжнина и политически наиболее содержательное и смелое. Однако же для Княжнина важна и здесь мысль об исконной свободе русского народа о чуждом для него характере самодержавия. Вадим Княжнина блюститель вольности свойственной его родине и он добивается не новых форм правления а сохранения того что принадлежит Новгороду по праву и по традиции.
44861. The formation of prices. Prices in the wholesale and retail trade. The impact of inflation on the price 19.21 KB
  Today we discuss such question «The formation of prices. Prices in the wholesale and retail trade. The impact of inflation on the price.» . Price - a monetary expression of value of goods, the amount of money paid per unit of product or service. In general, demand, supply, price - key variables that characterize the market. They are closely linked and mutually influence each other, creating a market mechanism for self-regulation
44863. Great Britain 17.81 KB
  The two min islnds re Gret Britin in which re Scotlnd Wles nd Englnd to the est nd Irelnd in which re Northern Irelnd nd the independent Irish Republish to the west. In everydy speech “Gret Britin†is used to men the United Kingdom. Gret Britin is mde up Scotlnd Wles nd Englnd; it does not include Northern Irelnd.
44864. Запуск системы X Window 24.6 KB
  Несколько более успешный но все еще не самый правильный способ выхода в графический режим состоит в выполнении команды xinit. Программа xinit она расположена в каталоге usr X11R6 bin предназначена для запуска сервера системы X Window и хотя бы одной программы-клиента. Если в командной строке не указано какой именно Xсервер запускать xinit ищет в домашнем каталоге пользователя файл . Если такого файла нет xinit по умолчанию выполняет следующий скрипт: X :0 т.
44865. Биография Исаака Бродского 19.23 KB
  В 1909 году Бродский едет на полгода во Францию по программной поездке предоставленной Академией. В период с 1910 по 1911 год Бродский живет на Капри в гостях у М. Вернувшись из поездки Бродский участвовал на выставках передвижников Академии и Союза русских художников.