Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ООП / Приложение MFC

.docx
Скачиваний:
23
Добавлен:
07.03.2016
Размер:
885.22 Кб
Скачать

Создание простого MFC-приложения в Visual Studio

  1. После открытия Visual Studio в основном меню выбираем Файл – Создать – Проект. На экране появляется диалоговое окно, в котором

выбираем Win32, Проект Win32, вводим имя проекта и нажимаем OK. В окне

жмем «Далее» и в серии диалогов выбираем установки, как на рисунках (вариант не единственный).

Жмем «Далее»

Жмем «Далее»

Жмем «Далее»

Жмем «Готово». Поковырявшись с полученными окнами можем добиться на экране примерно такой ситуации

Если теперь откомпилировать проект (создать решение) и запустить, то увидим окно

Которое ничего, естественно, не может.

Вернемся к проекту и научим его что-нибудь делать. Для начала щелкнем по центру надписи ресурса, изображающего главное окно программы. Выделится прямоугольник с надписью “Разместите здесь элементы управления диалоговым окном.”

Это один из управляющих элементов типа TextControl (Надпись). Можно открыть и посмотреть его свойства. Если окна со свойствами текущего (т.е. выделенного) элемента на экране нет, его можно вызвать с помощью правой кнопки мыши и всплывающего меню. Ниже вы видите окно со свойствами надписи. Эти свойства можно по-всякому менять. В частности в свойстве Подпись можно как угодно изменить текст самой надписи. Можно, наконец, удалить эту надпись со всеми ее свойствами. Так и поступим. Щелкнем по надписи и нажмем Del. Получим

Теперь надо открыть окно с элементами управления (Панель элементов)

И что-нибудь из этих элементов мышкой перетащить на форму окна. Перетащим кнопку Button и строковый редактор Edit Control. Расположим их как-нибудь. Например,

И займемся свойствами этой кнопки и поля. Щелкаем по кнопке. В окне со свойствами можем наблюдать

Изменим только два из этих свойств : подпись и ИД. У ИД сохраните начало IDC_, а дальше – что угодно, но латинскими буквами, цифрами и без пробелов. Например,

У поля редактирования изменим только ИД, установив его как IDC_Edit. Откомпилируем и опятьзапустим программу. Увидим

что по-прежнему никакой радости не доставляет. Наша ближайшая задача заставить новую кнопку и поле что-нибудь делать. Ну, например, чтобы при нажатии на кнопку в поле появилось: “Свободу Юрию Деточкину!” Это уже требует какого-то программирования. А программа, понятно, работает со всякого рода переменными. До сих пор редактировался файл ресурсов в чем-то сходный с картинкой. Программе объяснялось, какие объекты и где надо нарисовать. Для программирования следует завести переменные для каждого из интересующих нас объектов.

Технология работы с Visual Studio требует, чтобы создаваемые переменные включались в какой-нибудь класс. В настоящий момент уже имеется три класса:

CМойMFCDlg

CМойMFCDlg

CМойMFCDlgAutoProxy

Что такое класс? Это центральное понятие объектно-ориентированного программирования, которое является усовершенствованием обычных технологий программирования. Про классы и объекты написано много книг. Прочитав что-нибудь на эту тему любой желающий (сильно желающий) сможет понять детали. Считайте пока, что класс – это мешок, в котором собраны вместе какие-то переменные и способы управления этими переменными.

Допустим, что мы захотели нашу кнопку считать переменной MyButton, а поле редактирование – переменной MyEdit. Эти переменные надо поместить в один из классов. Причем лучше, чтобы они были в одном мешке. Тогда проще организовать их взаимодействие. В каком именно? Наиболее подходящим будет CМойMFCDlg (Мой диалог). Почему именно он? Шут его знает. Придумайте объяснение сами.

Для того, чтобы поместить придуманные нами переменные в класс CМойMFCDlg а заодно с этим связать их с изображениями кнопки и поля, находим окно классов

Щелкаем правой кнопкой по CМойMFCDlg и во всплывшем меню выбираем “ Добавить – Добавить переменную”. Появится диалог

В котором первым делом ставим галку “Переменная элемента управления”. Затем в выпадающем списке “Идентификатор элемента управления” находим наш ИД для кнопки. Наконец, в поле “Имя переменной” вносим придуманное имя MyButton. Жмем “Готово”. Затем то же самое делаем для поля ввода – присваиваем ему переменную MyEdit.

Если вам интересно, можете посмотреть текстовый файл “Мой MFCDlg.h”, который Visual Studio услужливо вам подсовывает. В самом его конце можно обнаружить добавленные переменные.

Теперь, наконец, можно и попрограммировать. Но еще несколько раз по мышке щелкнуть придется. Вспомним, что мы желаем. Мы хотим, чтобы на щелчок по нашей кнопке программа отреагировала, напечатав в окне редактора: “Свободу Юрию Деточкину!”

Вообще надо понимать, что программа в среде Windows после своего запуска большую часть времени ничего не делает. Она только ждет, когда пользователь на что-нибудь нажмет. И на каждое нажатие как-то реагирует. Эта реакция обычно происходит очень быстро. После чего программа опять ждет. Каждое нажатие – это событие. Реакция на нажатие – обработка этого события. Добавим еще, что событиями могут быть не только щелчки пользователя, но и масса других воздействий, которые способен ощутить компьютер. Программа под Window – это масса обработчиков различных событий. Если обычная консольная программа представляется как выстроенная цепочка команд, то здесь это множество таких программ. Каждая обрабатывает свое событие. Их очередность зависит только от того, в какой последовательности появляются эти события.

Так что нам надо написать обработчик нажатия на кнопку MyButton. Открываем редактор ресурсов. Например, в обозревателе решений открываем файлы ресурсов и дважды щелкаем по “Мой MFC.rc”. Дальше раскрываем пункт “Диалог” делаем двойной щелчок по его составляющему ресурсу IDD_MFC_DIALOG. Опять видим перед собой нашу форму с кнопкой и полем. Описанные выше манипуляции надо, естественно проделывать, если эта форма куда-нибудь делась. Так как в Visual Studio чертова прорва всяких элементов, то естественно, что что-нибудь все время теряется. Теперь щелкаем правой кнопкой мыши по нашей кнопке MyButton и во всплывшем меню выбираем пункт: “Добавить обработчик событий”. Появится окно, в котором устанавливаем

Оно, правда, и по умолчанию само так встанет. Если угодно, можно изменить имя функции-обработчика. Жмем “Добавить/править”. На экране должно появиться окно текстового редактора с файлом “Мой MFCDlg.cpp”. Покопайтесь в окнах на экране, если он сразу не бросается в глаза. В конце этого файла найдите строки

void CМойMFCDlg::OnBnClickedButton()

{

// TODO: добавьте свой код обработчика уведомлений

}

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

void CМойMFCDlg::OnBnClickedButton()

{

MyEdit.SetWindowTextW(L"Свободу Юрию Деточкину!");

}

Все! Откомпилируйте и запустите программу. Нажмте после запуска кнопку. Должны увидеть

Соседние файлы в папке ООП