Додання обробників подій кнопки

Тепер змусимо це демонстраційне застосування що-небудь робити. Наприклад, відображати при клацанні на кнопці вікно, що містить просте текстове повідомлення. В процесі реалізації цього завдання розглянемо операції, які доведеться неодноразово виконувати в процесі вивчення і застосування Visual C++.

■ Додамо обробник події, що реагує на дії користувача.

■ Організовуємо відображення повідомлення.

■ Відкомпілюємо і запустимо на виконання додаток Visual Studio. Спочатку зробимо наступні дії:

 

1. Відкрийте представлення Resource View (у разі потреби використовуйте меню View), як показано на мал. 1.8.

2. Розкрійте теку Dialog (Діалогові вікна) і знайдіть елемент IDD_HELLODIALOG_ DIALOG. Це ідентифікатор ресурсу (resource ID), привласнений діалоговому вікну даного застосування. Двічі клацніть на імені IDD_HELLODIALOG_DIALOG, щоб відкрити цей ресурс.

3. Середовище Visual Studio відкриє редактор діалогових вікон (вікно Dialog Editor),а панель інструментів (панель Toolbox)змінить так, щоб вона містила елементи управління, призначені для розміщення в діалогових ресурсах. Якщо вікно Resource Viewзаймає дуже багато місце на екрані, закрийте його.

Як можна відмітити на мал. 1.11,автоматично створене діалогове вікно містить лише кнопки ОКі Cancel,а також статичний текст, що оповіщає про те, що саме тут і потрібно розміщувати елементи управління діалогового вікна.

 

Мал. 1.11. Просте, стандартне діалогове вікно, створене майстром Visual Studio no умовчанню

4. Додайте для однієї з кнопок обробник події. Щоб при клацанні на кнопці (наприклад ОК) на екрані з'явилося повідомлення, необхідно виконати певний код. Саме цей код і називається обробником події (event handler).

Існує два способи призначити елементу управління обробник події. Можна просто двічі клацнути на кнопці, подія Click (Клацання) якою необхідно обробляти. В результаті автоматично створюється функція-член класу діалогового вікна, що викликається кожного разу при клацанні на цій кнопці. Але що якщо необхідно обробляти інші події, наприклад, клацання правою кнопкою миші?

В цьому випадку необхідний майстер Event Handler Wizard (майстер обробників подій), який допомагає додавати такі обробники подій елементів управління діалогових вікон, як клацання правою кнопкою миші (right-click) і подвійне клацання (double-click). Майстер Event Handler Wizard можна викликати, клацнувши правою кнопкою миші на елементі управління і вибравши потім в контекстному меню, що з'явилося, пункт Add EventWizard (Майстер додавання подій).

Клацніть правою кнопкою миші на кнопці ОК і в контекстному меню, що з'явилося, виберіть пункт Add Event Wizard.

5. Виберіть в полі із списком Message type (Тип повідомлення) елемент BN_CLICKED і переконаєтеся, що в полі із списком Class (Клас) вибраний клас CHelloDialogDlg. Майстер Event Wizard дозволяє вибирати як тип оброблюваного повідомлення, так і ім'я функції, що відповідає за обробку. За бажання, розробник може змінити автоматично створені майстром імена функцій-обробників, але зазвичай їх залишають встановленими за умовчанням.

6. Клацніть на кнопці Add and Edit (Додати і відредагувати). Відкриється редактор початкової коди, яка самостійно перейде до функції CHelloDialogDlg: :OnBnClickedOk (мається на увазі, що ім'я функції залишилося прийнятим за умовчанням). Зміните цю функцію так, щоб вона виглядала таким чином:

 

void CHelloDialogDlg::OnBnClickedOk()

{

AfxMessageBox("You clicked the Ok button");

// ONOK() ;

}

 

Звернете увагу, звернення до функції ОПОК базового класу закоментовано, оскільки стандартна поведінка кнопки ОК має на увазі, що після клацання на ній діалогове вікно необхідно закрити (за допомогою функції CDialog: :EndDialog). Оскільки дане діалогове вікно є головним вікном, це приведе до завершення роботи додатку.

7. Створіть додаток і запустіть його, що можна зробити двома способами:

• натиснути кнопку <F5>, щоб відразу запустити додаток. Буде поставлено питання: "Чи слід створювати додаток?" Клацніть на кнопці Yes (Так), і компілятор Visual Studio, створивши додаток (якщо проект не містить помилок), відразу запустить його;

• альтернативний підхід складається з двох етапів: спочатку в меню Build (Побудувати) виберіть пункт Build Solution (Побудувати рішення), а потім натисніть кнопку <F5>.

8. Перевірте додаток. Після клацання на кнопці ОК повинне з'явитися вікно повідомлення, аналогічне представленому на мал. 1.12.

Мал. 1.12. Демонстраційна програма у дії