Створення обробника для дочірньої кнопки
Всі елементи управління. що знаходяться на формі діалогового вікна, є його дочірніми елементами. Вони управляються цим батьківським вікном, успадковують від нього стильові властивості, а також отримують від нього повідомлення операційної системи. Створимо для кнопки "Виконати" обробник для виклику стандартного діалогового вікна повідомлень.
- Викличте контекстне меню для кнопки "Виконати" на шаблоні діалогового вікна і виконайте команду Add Event Handler (Додати обробник подій), щоб запустити майстер Event Handler Wizard
- Встановіть значення полів майстра як показано на малюнку і клацніть на кнопці Add and Edit (Додати і редагувати)
Майстер створить обробник події у вигляді методу
Виклик методу OnOK () буде завершувати роботу діалогового вікна. Одночасно в карті повідомлень класу CHelloDialogDlg з'явиться додатковий рядок, що зв'язує подію ON_BN_CLICKED про натискання клавіші, яка має код IDOK. з функцією-обробником OnBnClickedOk ()
- Змініть код обробника OnBnClickedOk () на наступний
- Побудуйте додаток і випробуйте його функціональність на даному етапі
Створення обробника для батьківського вікна
- Відкрийте панель Class View командою View / Class View
- Знайдіть клас CHelloDialogDlg. відповідальний за головне діалогове вікно, виділіть її та розкрийте вкладку Properties (Властивості)
- На вкладці Properties вгорі клацніть по піктограмі Messages (Повідомлення)
У вікні з'являться два стовпці з переліком всіх повідомлень, для яких можна створити обробники, і перелік імен всіх уже створених обробників.
Зверніть увагу, що середовище не дозволяє реєструвати обробники батьківського діалогового вікна з довільними іменами, а призначає їм стандартне ім'я. З цієї причини в карті повідомлень немає необхідності пов'язувати для події конкретні елементи з конкретними обработчиками, як це потрібно робити для дочірніх елементів.
Заготівля функції-обробника клацання по діалогового вікна, яку автоматично додасть среда, має вигляд
- Скорегуйте заготовку обробника події батьківського діалогового вікна так
Отже, для кожного доданого обробника повідомлення Среди генерує код в трьох місця: