Отчет по практике: Разработка программного обеспечения
Шаг 1. Теперь выбираем Dialog based, как показано на рис 2. Вы задали компилятору, что
программа ваша будет основана на диалоговых окнах.

Рис. 2.
Шаг 2. В этой панели
введите название программы как показано на рис 3 . Рассмотрим здесь группу "What features would you like
to include".

Рис. 3.
Первое включение говорит
о использовании справки (небольшой диалоговой панели, которая всплывает при
нажатии на иконку).
Теперь щелкаем NEXT.
Шаг 3. Вы видите, что
диалоговая панель задает два вопроса:
1) Нужно ли вставлять
комментарии в исходный текст, который будет являться каркасом вашей программы?
2) Программа, которую
создает для вас MFC AppWizard, будет иметь библиотеку с
динамической компоновкой (DLL),
а не статической? Dll дает
преимущество в том, что EXE
файл будет меньшего размера, а рядом к нему будет прилагаться DLL файл.
Выбираем всё как показано
на рис 4.

Рис. 4.
Затем нажимаем NEXT и щелкаем FINISH, посмотрите, чтобы было выбрано все, как показано на
рис. 5.

Рис.5.
Вы закончили создание
проекта программы!
Все каркасные файлы для
вашей программы написал Visual C++, с помощью
мастера настроек MFC AppWizard. MFC - это вещь очень полезная, с помощью нее можно быстро
создавать программы, так как все дежурные файлы он пишет сам, что сильно
облегчает работу программиста, ведь не писать стандартный набор текста каждый
раз!
А теперь мы спроектируем диалоговую
панель.
Сейчас мы визуально
спроектируем диалоговую панель. Для этого вначале выберите закладку "Resourse View" и раскройте пункт Hello Resource, как показано на рис. 6.

Рис.6.
Здесь вы видите две
записи:
1) IDD_ABOUTBOX
2) IDD_HELLO_DIALOG
1) - это название
диалоговой панели ABOUT, а 2)-
название главной диалоговой панели. Выполните щелчок по второй строчке(2) и
справа появится, диалоговая панель. В этом режиме можно ее редактировать (см. рис. 7).

Рис.7.
Удалите из диалоговой
панели текст: "TODO:.." и
две кнопки, для этого щелкните на эти элементы и нажмите DEL. Теперь у вас чистая панель и вы
можете спроектировать ее на свой вкус.
Cправа от диалоговой панели находятся
элементы управления(если вы их не видите, то зайдите в TOOLS->CUSTOMIZE, в закладке TOOLBARS, CONTROLS - поставьте флажок). Вы можете
редактировать панель в полном экране, для этого зайдите в VIEW->FULLSCREEN.
Сейчас выберите в
элементах управления Button,

и щелкните мышкой на
диалоговую панель, которая должна выглядет, как показано на рис. 8 .

Рис.7.
Теперь выделите кнопку
мышкой, для этого нажмите на нее и отбуксируйте маркеры, чтобы кнопка стала
такой же, как на рис 6. После этого опять выделите кнопку левым щелчком мыши,
затем нажмите правую кнопку и в расрывшемся меню выбирете Properties(настройки).
Выведется такая
диалоговая панель (рис 7).

Вместо текста IDC_BUTTON1 введите IDC_SAYHELLO_BUTTON, зададим идентификатор, по которому VC будет распознавать элемент. В строке
Captions(надпись), введите название кнопки Say Hello.
Вставьте теперь еще одну
кнопку такого же размера, c ID - IDC_EXIT_BUTTON и Captions(надпись) Exit. Диалоговая панель должна выглядеть, как показано на рис. 1.8

Все свойства диалогового
окна будут задавать таблицей, где будут указываться свойства элементов диалога.
Свяжем элементы управления с событиями. Два элемента - это две кнопки: Say Hello и Exit.
Теперь воспользуемся еще одним мастером ClassWizard, он сильно облегчит нам работу.
Зайдите в VIEW->ClassWizard, появится такая диалоговая панель

Рис.1.8.
Рассмотрим эту панель.
1) Project- здесь вы выбираете свой проект.
2) ClassName - название класса, элементы которого
вы будете связывать с событиями, проверьте, чтобы там было установлено CHelloDlg - это класс, который связан с
главным диалоговым окном.
3) Object IDs - это идентификаторы(названия) элементов управления,
в нашем случае это две кнопки. Первый идентификатор - это название самого
класса, оно туда включено, так как с ним связаны многие события( это такие
значения, которые возвращаются Windows,
при совершении какого-нибудь действия).
4) Messages - а это как раз те самые события,
которые генерирует программа. К примеру, если вы нажали на кнопку, то
генерируется событие BN_CLICKED, а если два раза - то BN_DOUBLECLICKED.
5) Members function - это список функций, которые вы
включили, и соответствующие им события.
Теперь свяжем кнопку EXIT с событием BN_CLICKED - оно
возникает при нажатие на кнопку. Для этого щелкнем в Object IDs на IDC_EXIT_BUTTON, справа появится события, с которыми можно связать
эту кнопку. Выбираем там BN_CLICKED. И щелкаем на кнопке Add Function , которая находится справа. Этим
нажатием вы говорите Visual C++, что вам
необходимо связать это событие с функцией. Выведется такая диалоговая панель,
где вам предложат выбрать название функции. Оставьте все по умолчанию и нажмите
кнопку OK.

В Members function появилась запись о том, что связали
кнопку (c итендификатором IDC_EXIT_BUTTON)
с функцией OnExitButton. Теперь щелкаем по кнопке Edit Code, которая находится ниже кнопки Add Fucnction. При нажатии на эту кнопку мы
переходим в режим редактирования исходного текста. В окошке появится тест:
void
CHelloDlg::OnExitButton()
{
// TODO: Add
your control notification handler code here
}
Коментарий //
TODO: Add your control notification handler code here говорит, что после него
можно ставлять свой код.
Начало вашего кода будет
обозначаться
///Здесь начинается ваш
код///
А конец вашего кода -
///Здесь заканчивается
ваш код///
Теперь введем код, для
этого вам надо переписать его
void
CHelloDlg::OnExitButton()
{
// TODO: Add
your control notification handler code here
///Здесь начинается ваш
код///
OnOK();
///Здесь заканчивается
ваш код///
}
Напишем OnOK();, эта функция будет выполняться
при каждом нажатии на кнопку EXIT,
и она предназначена для завершения программы. Проверьте, чтобы в написании OnOK, OK было написано с большой буквы, иначе, при компиляции
программы, Visual C++ сообщит вам об ошибке, так символы верхнего и нижнего
регистра в VC имеют распознаются по-разному.
Итак вы связали кнопку EXIT с событием BN_CLICKED, а его с
функцией OnExitButton, которая будет выполняться при
каждом нажатии на кнопку EXIT.
Теперь свяжем кнопку Say Hello с событием BN_CLICKED. Для этого зайдем в меню VIEW->ClassWizard.
Выберем в
Object IDs IDC_SAYHELLO_BUTTON.
Щелкнем на BN_CLICKED в Messages (этим связываете кнопку Say Hello с событием BN_CLICKED).
Нажимаем на Add function, этим связываете событие BN_CLICKED с функцией.
В раскрывшемся окне
оставляем все по умолчанию и нажимаем кнопку OK.

Затем нажимаем на кнопку Edit Code, для редактирование исходного текста.
И в раскрывшемся окне
пишем следующий код:
void
CHelloDlg::OnSayhelloButton()
{
// TODO: Add
your control notification handler code here
///Здесь начинается ваш
код///
MessageBox("Say Hello");
///Здесь заканчивается
ваш код///
}
Функция MessageBox("Say Hello"); вызывает окно сообщений, в котором написан
текст Say Hello, который и является параметром этой функции.
Итак, связали кнопки Say Hello и EXIT с
событием BN_CLICKED. При нажатии на кнопку Exit программа завершается, а при нажатии на кнопку Say Hello выводится сообщение "Say Hello".
Теперь осталось построить
и выполнить программу. Нажимаем Далее...
Компиляция и запуск
программы
Для того, чтобы выполнить
программу надо ее вначале сохранить. Зайдите в меню File и там нажмите на Save All. Затем надо ее построить (скомпилировать).
Зайдем в меню Build->Build Hello.exe,
начнется построение программы. Если компилятор не выдал сообщение об ошибке,
которые можно посмотреть в появившемся внизу окошке, то можно смело запускать
программу.

Теперь осталось только
выполнить программу, для этого зайдите в меню Build->Execute Hello.exe
Ваша программа должна
будет выглядеть так:

А окно сообщений при
нажатии на кнопку Say Hello:

Проект программы создан,
визуально спроектирована диалоговая панель, элементы управления связаны с
событиями с помощью мастера ClassWizard, программа выполняется.
Индивидуальные
задания.
Ниже
приведено 15 вариантов задач. По указанию преподавателя выберите свое
индивидуальное задание. Уточните условие задания, количество, наименование, типы
исходных данных. В соответствии с этим установите количество окон, тексты заголовков
на форме, размеры шрифтов, а также типы переменных и функции преобразования при
вводе и выводе результатов.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 |