Tworzenie niemodalnego arkusza właściwości
Normalnie arkusze właściwości, które można utworzyć będzie modalne.Korzystając z arkusza właściwości modalny, użytkownik musi zamknąć arkusz właściwości przed użyciem część aplikacji.W tym artykule opisano metody, których można użyć do utworzenia arkusza właściwości niemodalny pozwalające użytkownikowi na otwartym arkuszu właściwości podczas korzystania z innych części aplikacji.
Aby wyświetlić arkusz właściwości jako Niemodalne okna dialogowego zamiast jako modalne okno dialogowe, wywołaj CPropertySheet::Create zamiast DoModal.Musi też implementować niektóre dodatkowe zadania do obsługi arkusza właściwości niemodalny.
Jednym z zadań dodatkowych jest wymiana danych między arkusz właściwości i obiekt zewnętrzny jest modyfikowany, gdy jest otwarty arkusz właściwości.Na ogół jest to samo zadanie, jak dla standardowych Niemodalne okna dialogowe.Częścią tego zadania jest zaimplementowanie kanału komunikacyjnego między arkusz właściwości niemodalny i zewnętrznego obiektu, którego dotyczą ustawienia właściwości.Ta implementacja jest znacznie łatwiejsze, jeśli pochodzić od klasy z CPropertySheet na arkuszu właściwości niemodalny.W tym artykule zakłada się, że zostało to zrobione.
Jedną z metod komunikacji między arkusz właściwości niemodalny i zewnętrznych jest określenie wskaźnika z arkusza właściwości do obiektu zewnętrznego obiektu (bieżące zaznaczenie w widoku, na przykład).Zdefiniować funkcję (nazwę podobną do SetMyExternalObject) w CPropertySheet-klasy, aby zmienić wskaźnik zmianie fokusu z jednego zewnętrznego obiektu do innego.SetMyExternalObject Funkcja musi zresetować ustawienia dla każdej strony właściwości, aby odpowiadały nowo wybrany obiekt zewnętrzny.Aby to osiągnąć, SetMyExternalObject funkcja musi mieć dostęp do CPropertyPage obiekty należące do CPropertySheet klasy.
Najwygodniejszym sposobem zapewnienia dostępu do strony właściwości w arkuszu właściwości jest osadzenie CPropertyPage obiektów w CPropertySheet-pochodnych obiektu.Osadzanie CPropertyPage obiektów w CPropertySheet-pochodne obiektu różni się od typowego projektu dla modalnych okien dialogowych, gdzie właściciel arkusza właściwości tworzy CPropertyPage obiektów i przekazuje je do arkusza właściwości via CPropertySheet::AddPage.
Istnieje wiele alternatyw interfejsu użytkownika do określenia, kiedy ustawienia arkusza właściwości niemodalny stosuje się do obiektu zewnętrznego.Powoduje zastosowanie ustawień bieżącej strony właściwości, w każdym przypadku, gdy użytkownik zmienia się każda wartość jest jedna z alternatyw.Inną alternatywą jest zapewnienie przycisk Zastosuj, który pozwala użytkownikowi do akumulacji zmian na stronach właściwości przed umieszczeniem ich w obiekcie zewnętrznym.O sposoby obsługi przycisku Zastosuj, zobacz artykuł przycisku Zastosuj obsługi.