КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Имена и типы связанных переменных диалогового окна
Большинство взаимосвязей между типами элементов управления и типами переменных совершенно прозрачны. Однако уже не столь очевидно, как кнопки-переключатели (радио-кнопки) соотносятся с переменными. Если радио-кнопок в группе всего 2, как в нашем случае, то можно только для первой радио-кнопки ввести связанную переменную булевского типа и проверять ее значение: значение true означает выбор пользователем первой кнопки, а false – второй. Если кнопок несколько, то, проще всего, только с первой из них связать целочисленную переменную. Тогда при выборе первой кнопки значение этой переменной будет равно 0, второй – 1 и т.д. При этом для первой кнопки надо задать Group=True и Tabstop=True, а для всех остальных кнопок группы задать Group=False и Tabstop=True. Альтернативным способом получения состояния кнопок (причем любых кнопок, а не только радио-кнопок) является вызов их функций CButton::GetCheck(), но для этого надо иметь указатель на объект кнопка. Его можно получить с помощью функции CDialog::GetDlgItem(), но только в функциях класса диалога. Для связанной переменной комбинированного списка «Язык» можно было бы выбрать тип CString или int. В первом случае переменная содержала бы название выбранного языка, а во втором (выбранном нами) она будет содержать номер выбранного языка в списке, причем значение для первого языка в списке – нулевое. На этом этапе приложение должно компилироваться и выполняться, причем в диалоговом окне Вы можете вводить фамилию, биографию, выбирать вид оплаты, устанавливать и снимать флаги страховки, выбирать или вводить данные в комбинированный список «Профессиональные навыки», выбирать или вводить уровень образования, выбирать язык. В списке «Отдел» нет никаких данных и Вы их туда ввести не можете. Вы также можете двигать ползунки полос «Вредность» и «Лицемерие», но их положение пока не будет фиксироваться. Кроме того, любые выбираемые или вводимые Вами данные пока нигде не сохраняются. Надо что-то решать, не правда ли? Кстати, посмотрите на текст конструктора класса CDiaWinDlg::CDiaWinDlg(CWnd* pParent /*=NULL*/)
в файле CDiaWinDlg.cpp. Заметили, как там инициализируются связанные переменные? Также любопытно посмотреть на функцию CDiaWinDlg::DoDataExchange() в том же файле. Шаг 7. Добавление переменных для доступа к классам управляющих элементов. Каждому управляющему элементу, размещенному в диалоговом окне, соответствует свой MFC-класс и, когда при инициализации этот элемент создается, создается объект этого класса. Вместе с тем в программном коде, сгенерированном мастером ИС, этого объекта нет (в отличие от программы, разработанной в Delphi или Builder). Уже упоминаемая ранее функция CDialog::GetDlgItem() позволяет получить ссылку на класс управляющего элемента, но этот указатель временный, как подчеркивается в MSDN, и с его использованием часто возникают проблемы. В связи с изложенным проще всего, и в конечном счете удобнее, добавить в программу переменные, являющиеся именами экземпляров классов (объектов), связанных с управляющими элементами окна. Для достижения этой благородной цели введем такие связанные переменные по аналогии с предыдущим шагом, но для каждой переменной надо выбирать Category=Control. и флажок Control Variable должен быть установлен. Перечень имен этих переменных приведен в табл. 3. Для добавления переменных-объектов надо, как и на предыдущем шаге, выполнить команду ProjectèAdd Variable, в списке Control ID выбрать идентификатор управляющего элемента и в поле Variable Name задать имя переменной. Не забывайте нажимать кнопку Finish после ввода каждой переменной. Таблица 3
Дата добавления: 2014-12-26; Просмотров: 388; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |