Разработка приложений на Visual C++ MFC

Открыв проект, созданный при помощи «Мастера приложений», то Вы увидите пустое окно (возможно это исправили в версиях позднее Visual C++ 2010). Для того, чтобы вернуть диалоговое окно, которые было у нас в прошлом уроке, следует активировать вкладку «Окно ресурсов», открыть папку «Dialog», и в ней два раза щелкнуть по «IDD_имя_проекта».

Окно ресурсов Visual C++ MFC

Если Вы не найдете вкладки «Окно ресурсов», то следует сделать ее видимой, для этого: «Вид»>>«Ресурсы». Еще необходимо активировать «Обозреватель решений», чтобы было возможно в ходе работы переключаться между диалоговым окном и кодом программы. Теперь, когда все готово, напишем программу, имеющую практическое значение.

Постановка задачи:

Написать программу, пересчета из градусов в радианы. Пользователь должен вводить значения в градусах, а получать эти же значения в радианах. Визуально это будет выглядеть так: в центре окна располагается фрейм для ввода данных, под ним кнопка «Выход» и кнопка «Пересчитать».

Решение задачи:

Для начала удалим метку TODO из нашей программы (выделить и нажать Delete). При помощи «Панели элементов» добавим метку (Static Text) и поле редактирования (Edit Control).

Панель элементов Visual C++ MFC

Изменим текст метки, для этого выделим ее и нажав правую клавишу мыши выберем пункт «Свойства». Справа появится панель, в строке «Подпись» изменим значение «Статический» на «Введите значение в градусах».

Свойства элементов в Visual C++

Аналогичным образом изменим значение «Подпись» (Caption англ.) у кнопок «ОК» и «Отмена», на «Пересчитать» и «Выход». Окно вашей программы должно быть примерно, такое как на скриншоте.

Snap 2012-12-25 at 12.58.26

Теперь напишем функцию, которая будет определять действие программы после нажатия пользователя по кнопке «Пересчитать». Для переопределения действий необходимо:

  1. В свойствах кнопки поменять значение параметра ID, впишем туда значение ID_radian. Значение, которое стоит по умолчанию закрывает диалоговое окно, что нам не нужно.
  2. Щелкаем дважды по кнопке «Пересчитать» и попадаем в окно с кодом, где в качестве тела функции OnBnClickedradian() вводим строку MessageBox(«Пока нет текста функции обработки»);. Запустив приложение и нажав на кнопку «Пересчитать», Вы должны увидеть следующие окно, иначе (скорее всего) допущена ошибка в настройках при создании проекта.Snap 2012-12-26 at 17.25.12
  3. Осталось написать текст в функцию OnBnClickedradian, но сначала добавим переменную, которая будет отвечать за «Поле редактирования». Для этого щелкаем правой кнопкой мыши по полю в которое вводятся данные, выбираем «Добавить переменную…». Появится окно, в поле «Имя переменной» вписываем название этой самой переменной (я написал m_Edit). В ее свойствах указываем тип возвращаемого компонентом значения (выберем float), для этого: «Категория»->«Тип переменной»->float. Должно быть так как на скриншоте

    Мастер добавления переменной-члена mfc

  4. Ну и наконец изменяем код функции OnBnClickedradian():
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void CKvodoDlg::OnBnClickedradian()
{
float gr, rad;
char s[80];
//UpdateData позволяет считать из компонента
//»Поле редактирования» значение, введенное пользователем
UpdateData(TRUE);
//считывание в переменную gr данных из поля ввода
gr=m_Edit;
rad=gr*3.14159/180;
sprintf(s, «%g градусов это %g радиан», gr, rad);
//функция MessageBox формирует диалоговое окно
//со строкой, хранящейся в переменной s
MessageBox(s);
}

Запускаем наше приложение, надеясь что оно работает). Результат выглядит примерно так

Включай картинки!

Подводя итоги, выделим основные этапы создания простого визуального приложения:

  1. Создаем шаблон приложения типа «Диалоговое окно»;
  2. Размещаем в этом окне нужные нам компоненты при помощи «Панели элементов»;
  3. Изменяем ID тех кнопок, которые будут управлять работой приложения;
  4. Определяем имена и возвращаемые значения компонентов «Поле редактирования»;
  5. Программируем текст функций, отвечающих за обработку событий при щелчке мыши по кнопкам.
Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...