C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Ваша первая программа - HELLO.EXE / Уроки программирования на Visual C++ с помощью MFC / Visual C++


LESSON 1

Cейчас вы создадите свою первую программу! Для этого нужно:
1) Создать проект программы
2) Визуально спроектировать диалоговую панель
3) Связать элементы управления с событиями
4) Сохранить и выполнить программу

Теперь рассмотрим все пункты попорядку.
1) Вначале запустим Visual C++. Зайдем в меню FILE -> NEW..., выберем там Project. Ваша панель должна выглядеть теперь так:

Затем выбираем MFC AppWizard(exe). В окне редактирования Project Name задаем имя программы и нажимаем OK.
STEP1 Теперь выбираем Dialog based, как показано на рис 1.1. Вы задали компилятору, что программа ваша будет основана на диалоговых окнах.

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

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

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

Вы закончили создание проекта программы!
Все каркасные файлы для вашей программы написал Visual C++, с помощью мастера настроек MFC AppWizard. MFC - это вещь очень полезная, с помощью нее можно быстро создавать программы, так как все дежурные файлы он пишет сам, что сильно облегчает работу программиста, ведь не писать стандарный набор текста каждый раз!

А теперь мы спроектируем диалогувую панель.

Проектирование диалоговой панели

Сейчас мы визуально спроектируем диалоговую панель. Для этого вначале выбирете закладку "Resourse View" и раскройте пункт Hello Resource, как показано на рис. 1.5.

Здесь вы видите две записи:
1) IDD_ABOUTBOX
2) IDD_HELLO_DIALOG

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

Удалите из диалоговой панели текст: "TODO:.." и две кнопки, для этого щелкните на эти элементы и нажмите DEL. Теперь у вас чистая панель и вы можете спроектировать ее на свой вкус.

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

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

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

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

Поздравляю, вы закончили визуальное проектирование диалоговой панели!
Отныне все свойства диалогового окна будут задавать таблицей, где будут указываться свойства элементов диалога. К примеру для этого диалога, таблица будет выглядеть так:

Объект Свойство Установка
Dialog Box ID IDD_MYMSG_DIALOG
Caption The SayHello Program
Push Button ID IDC_SAYHELLO_BUTTON
Caption SayHello
Push Button ID IDC_EXIT_BUTTON
Caption Exit


Связывание элементов управления с событиями

Связывание элементов управления

Сейчас мы свяжем элементы управления с событиями. У нас всего два элемента - это две кнопки: Say Hello и Exit.

Теперь мы будем пользоваться еще одним мастером ClassWizard, он сильно облегчит нам работу. Зайдите в VIEW->ClassWizard, появится такая диалоговая панель

Рассмотрим эту панель.
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, и выполнять программу.

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

Упражнение к Уроку

Упражнение

Упражнение
Сейчас вы выполните упражнение. Вам необходимо вставить еще одну кнопку с названием Beep c итендификатором IDC_BEEP_BUTTON, при нажатии на которую компьютер подает сигнал через диамик компьютера.
Функция для подачи сигнала - MessageBeep((WORD)-2);.
Окно вашей программы должно будет выглядеть так:

Ответ к упражнению
Щелкнем на закладку Resource View, раскроем меню Hello Resource, там откроем Dialog и щелкнем мышкой два раза на IDD_HELLO_DIALOG. Откроется окно проектирования. Вставим туда еще одну кнопку c итендификатором IDC_BEEP_BUTTON и надписью(Caption) - Beep.
Заходим в меню View->ClassWizard, выбираем в Object IDs IDC_BEEP_BUTTON, в Messages щелкаем на BN_CLICKED и нажимаем на Add Function, там оставляем все по умолчанию и жмем OK, затем нажимаем на кнопку Edit Code. И вводим такой текст:

void CHelloDlg::OnBeepButton()
{
// TODO: Add your control notification handler code here
///Мой код начинается здесь///

MessageBeep((WORD)-2);

///Мой код заканчивается здесь///
}

Теперь выполняем программу, для этого заходим в меню Build->Build Hello.exe, а потом в меню Build выбираем Execute Hello.exe

Вы закончили первый урок!