Обработка кнопку применить
Страницы свойств имеют возможность, стандартные диалоговые окна не делают: Они позволяют пользователю, чтобы применить внесенные изменения до закрыть страницу свойств.Это делается с помощью кнопки применить.Данный раздел описывает методы, которые можно использовать для реализации этой функции.
Модального диалогового окна параметры обычно применяются к внешнему объекту, когда пользователь щелкает ОК, чтобы закрыть диалоговое окно.Это также относится к страницы свойств: Когда пользователь щелкает ОК, новые параметры на странице свойств вступают в силу.
Однако может понадобиться разрешить пользователю, чтобы сохранить параметры без, чтобы закрыть диалоговое окно страницы свойств.Это функция кнопки " применить ".Кнопка применить применяет текущие параметры на всех страницах свойств к внешнему объекту, в отличие от применения только текущие параметры в настоящий момент текущей страницы.
По умолчанию всегда кнопку применить.Необходимо написать код, чтобы включить кнопку применить в нужное время и необходимо написать код для реализации эффект Apply, как описано ниже.
Если не нуждаются в возможности применять предложить пользователю не требуется удалить, то кнопка применить.Можно оставить заблокировано, как будет общим для нескольких приложений, которые используют стандартный доступный поддержки страниц свойств в будущих версиях windows.
Сообщить страницу как дорабатываемо и включить кнопку применить, то вызов CPropertyPage::SetModified( TRUE ).Если все страницы должен быть изменен отчет кнопка применить включенной, независимо от того, останется ли в данный момент текущая страница была изменена.
Необходимо вызвать CPropertyPage::SetModified, когда пользователь изменяет параметры страницы.Один из способов определить, когда пользователь изменяет параметр на странице реализовать обработчики уведомления об изменении для каждого из элементов управления на странице свойств, таких как EN_CHANGE или BN_CLICKED.
Для реализации кнопки применить эффект, ее владелец должен сообщить страница свойств или какой-либо другой внешний объект в приложении применить текущие параметры в страницах свойств.В то же время страница свойств должна осуществлять блокировку кнопку применить путем вызова CPropertyPage::SetModified( FALSE ) для всех страниц, примененные их изменения к внешнему объекту.
Пример этого процесса см. в разделе пример PROPDLG MFC без ограничений.