Delen via


Het verwerken van de knop 'Toepassen'

Eigenschappenvensters hebben een mogelijkheid die standaarddialoogvensters niet doen: gebruikers kunnen wijzigingen toepassen die ze hebben aangebracht voordat ze het eigenschappenvenster sluiten. Dit wordt gedaan met de knop Toepassen. In dit artikel worden methoden besproken die u kunt gebruiken om deze functie correct te implementeren.

Modale dialoogvensters passen meestal de instellingen toe op een extern object wanneer de gebruiker op OK klikt om het dialoogvenster te sluiten. Hetzelfde geldt voor een eigenschappenvenster: wanneer de gebruiker op OK klikt, worden de nieuwe instellingen in het eigenschappenvenster van kracht.

Mogelijk wilt u echter toestaan dat de gebruiker instellingen opslaat zonder het dialoogvenster voor het eigenschappenvenster te sluiten. Dit is de functie van de knop Toepassen. Met de knop Toepassen worden de huidige instellingen op alle eigenschappenpagina's toegepast op het externe object, in plaats van alleen de huidige instellingen van de huidige actieve pagina toe te passen.

De knop Toepassen is standaard altijd uitgeschakeld. U moet code schrijven om de knop Toepassen op de juiste momenten in te schakelen en u moet code schrijven om het effect van Toepassen te implementeren, zoals hieronder wordt uitgelegd.

Als u de functionaliteit Toepassen niet wilt aanbieden aan de gebruiker, hoeft u de knop Toepassen niet te verwijderen. U kunt deze functie uitgeschakeld laten, zoals gebruikelijk is voor toepassingen die gebruikmaken van standaardondersteuning voor eigenschappenvensters die beschikbaar zijn in toekomstige versies van Windows.

Als u een pagina wilt rapporteren als gewijzigd en de knop Toepassen wilt inschakelen, roept u aan CPropertyPage::SetModified( TRUE ). Als een van de pagina's aangeeft te zijn gewijzigd, blijft de knop Toepassen ingeschakeld, ongeacht of de momenteel actieve pagina is gewijzigd.

U moet CPropertyPage::SetModified aanroepen wanneer de gebruiker instellingen op de pagina wijzigt. Een manier om te detecteren wanneer een gebruiker een instelling op de pagina wijzigt, is door wijzigingsmeldingenhandlers te implementeren voor elk van de besturingselementen op de eigenschappenpagina, zoals EN_CHANGE of BN_CLICKED.

Als u het effect van de knop Toepassen wilt implementeren, moet het eigenschappenvenster de eigenaar of een ander extern object in de toepassing vertellen om de huidige instellingen toe te passen op de eigenschappenpagina's. Tegelijkertijd moet het eigenschappenvenster de knop Toepassen uitschakelen door alle pagina's aan te roepen CPropertyPage::SetModified( FALSE ) waarop de wijzigingen in het externe object zijn toegepast.

Zie voor een voorbeeld van dit proces de MFC General sample PROPDLG.

Zie ook

eigenschappenvensters