НОУ ІНТУІТ, Лекція, Модальні вікна сторінок властивостей MFC

Обробка повідомлень відключених вкладок

Отримавши засоби відображення стану вимкнених вкладок (доступна чи не доступна), додамо функцію, яка фактично вимикає можливість вибору користувачем заблокованої вкладки. Це завдання виконає віртуальна функція OnNotify() базового класу CPropertySheet, яку ми перевизначимо у нашому класі-спадкоємці CFindSheet.

  • Виділіть у панелі Class View клас CFindSheet та перейдіть в панель Properties
  • Встановіть у панелі Properties режим Overrides та створіть у проекті перевизначену функцію OnNotify()

модальні

Наповніть створену функцію наступним кодом

Далі ми додамо функцію IsPageDisabled() , що перевіряє, чи вважається вкладка, що вибирається користувачем, як недоступна.

модальні

Майстер додасть заготовку в кінець файлу FindSheet.cpp , а опис класу додасть прототип функції.

  • Наповніть створену функцію наступним кодом

Поки нічого не було знайдено, вкладка Result має бути недоступною користувачеві. Ми створили для цього відповідний код. Тепер лишилося перевірити його роботу.

  • Знайдіть функцію-член OnInitDialog() класу CFindSheet і додайте в кінець наступний код

Підключення вкладок

Маючи можливість відключати вкладки вікна властивостей, потрібно дати можливість включати їх. Для цього необхідно додати функцію EnablePage() , що відновлює доступ до вкладки, і функцію SetEnabledText() , що видаляє з її заголовка маркер "Disabled" .

  • У панелі Class View виділіть клас CFindSheet, оскільки додавати функцію-член ми будемо саме в цей клас
  • Через контекстне меню клацання правою кнопкою миші на класі CFindSheetвикличте майстер додавання функцій, який заповніть так

лекція

модальні

Натисніть кнопку Add, потім кнопку Finish

Майстер додасть заготовку в кінець файлу FindSheet.cpp , а опис класу додасть прототип функції.

Перевірити роботу коду включення доступності другої вкладки можна за допомогою обробника кнопки Find першої вкладки. У реальному додатку вкладка Result має стати доступною лише після того, як фактично виконаний пошук увінчається успіхом. У нашому випадку виклик коду дозволу та заборони доступу до вкладки значно спрощений.