KNOW INTUIT, Лекция, Модални прозорци на страници със свойства на MFC
Обработка на уведомителните съобщения за деактивиран раздел
Сега, след като разполагаме със средства за показване на състоянието на деактивирани раздели (налични или неналични), нека добавим функция, която всъщност деактивира възможността на потребителя да избира заключен раздел. Тази задача ще бъде изпълнена от виртуалната функция OnNotify() на базовия клас CPropertySheet, който ще заменим в нашия производен клас CFindSheet.
- Изберете класа CFindSheet в панела Class View и отидете на панела Properties
- Задайте панела Properties на режим Overrides и създайте заменена функция OnNotify() в проекта
Попълнете създадената функция със следния код
След това ще добавим функция IsPageDisabled(), която проверява дали избраният от потребителя раздел е посочен като забранен.
Помощникът ще добави празно място в края на файла FindSheet.cpp и ще добави прототип на функция към описанието на класа.
- Попълнете създадената функция със следния код
Въпреки че нищо не е намерено, разделът Резултат трябва да е недостъпен за потребителя. Създадохме съответния код за това. Сега остава да проверим работата му.
- Намерете членската функция OnInitDialog() на класа CFindSheet и добавете следния код в края
Свързващи раздели
Като имате възможност да деактивирате разделите на прозореца със свойства, трябва да можете да ги активирате. За да направите това, трябва да добавите функцията EnablePage(), която възстановява достъпа до раздела, и функцията SetEnabledText(), която премахва маркера „- Disabled“ от заглавието му.
- В панела Class View изберете класа CFindSheet, тъй като ще добавим членската функция към този клас
- Чрез контекстното меню, като щракнете с десния бутон върху класа CFindSheetизвикайте съветника за добавяне на функции, който попълвате по този начин
Щракнете върху бутона Добавяне, след това върху бутона Край
Помощникът ще добави празно място в края на файла FindSheet.cpp и ще добави прототип на функция към описанието на класа.
Можете да тествате работата на кода за активиране на достъпността за втория раздел, като използвате манипулатора на бутона за търсене за първия раздел. В реално приложение разделът Резултати трябва да стане достъпен едва след успешно извършено реално търсене. В нашия случай извикването на кода за разрешаване и отказ на достъп до раздела е значително опростено.