Obsługa przycisku Zastosuj
Arkusze właściwości mają możliwość, że standardowe okna dialogowe nie: umożliwiają użytkownikowi stosowanie zmian wprowadzonych przed zamknięciem arkusza właściwości. Odbywa się to przy użyciu przycisku Zastosuj. W tym artykule omówiono metody, których można użyć do prawidłowego zaimplementowania tej funkcji.
Modalne okna dialogowe zwykle stosują ustawienia do obiektu zewnętrznego, gdy użytkownik kliknie przycisk OK, aby zamknąć okno dialogowe. To samo dotyczy arkusza właściwości: gdy użytkownik kliknie przycisk OK, nowe ustawienia w arkuszu właściwości zostaną zastosowane.
Możesz jednak zezwolić użytkownikowi na zapisywanie ustawień bez konieczności zamykania okna dialogowego arkusza właściwości. Jest to funkcja przycisku Zastosuj. Przycisk Zastosuj stosuje bieżące ustawienia we wszystkich stronach właściwości do obiektu zewnętrznego, w przeciwieństwie do stosowania tylko bieżących ustawień aktualnie aktywnej strony.
Domyślnie przycisk Zastosuj jest zawsze wyłączony. Musisz napisać kod, aby włączyć przycisk Zastosuj w odpowiednim czasie i musisz napisać kod, aby zaimplementować efekt zastosuj, jak wyjaśniono poniżej.
Jeśli nie chcesz oferować użytkownikowi funkcji Zastosuj, nie jest konieczne usunięcie przycisku Zastosuj. Można pozostawić to wyłączone, podobnie jak w przypadku aplikacji korzystających ze standardowej obsługi arkusza właściwości dostępnej w przyszłych wersjach systemu Windows.
Aby zgłosić stronę jako zmodyfikowaną i włączyć przycisk Zastosuj, wywołaj metodę CPropertyPage::SetModified( TRUE )
. Jeśli którykolwiek z raportów stron jest modyfikowany, przycisk Zastosuj pozostanie włączony, niezależnie od tego, czy aktualnie aktywna strona została zmodyfikowana.
Wywołaj metodę CPropertyPage::SetModified za każdym razem, gdy użytkownik zmieni ustawienia na stronie. Jednym ze sposobów wykrywania, kiedy użytkownik zmienia ustawienie na stronie, jest zaimplementowanie programów obsługi powiadomień o zmianach dla każdej kontrolki na stronie właściwości, takich jak EN_CHANGE lub BN_CLICKED.
Aby zaimplementować efekt przycisku Zastosuj, arkusz właściwości musi poinformować właściciela lub inny obiekt zewnętrzny w aplikacji, aby zastosować bieżące ustawienia na stronach właściwości. Jednocześnie arkusz właściwości powinien wyłączyć przycisk Zastosuj, wywołując CPropertyPage::SetModified( FALSE )
wszystkie strony, które zastosowały ich modyfikacje do obiektu zewnętrznego.
Aby zapoznać się z przykładem tego procesu, zobacz przykładOWY przykład PROPDLG MFC.