2015-03-18 2 views
1

Je suis à la recherche de la meilleure façon de mettre à jour un CPropertyPage une fois qu'il a été cliqué. Actuellement, mes pages reçoivent des informations pendant le OnInitDialog(). Cependant, lorsque l'utilisateur fait quelque chose sur la première page, cela peut affecter ce qui est à la page deux.Mise à jour de CPropertyPage sur la sélection d'onglets

La seule solution que je peux penser à utiliser est un bouton "Mettre à jour". Une fois que le bouton est cliqué, la page actualise ses informations en appelant les mêmes fonctions qui ont lieu pendant OnInitDialog(). Y at-il un événement qui se produit lorsque l'utilisateur clique sur un CPropertyPage différent d'une CPropertySheet?

Répondre

2

L'utilisation d'un bouton "Mettre à jour" est de mauvaise conception car l'utilisateur doit forcer la mise à jour. Au lieu de cela, vous devriez chercher à maintenir l'état des valeurs qui pourraient causer la mise à jour. Cela peut être fait dans un objet de structure ou de classe qui peut ensuite être rendu accessible à CPropertyPage::OnSetActive de la page qui a besoin des valeurs mises à jour. OnSetActive est appelé juste avant que la page ne devienne active. C'est votre opportunité de mettre à jour les valeurs sur la page avant qu'elle ne s'affiche.

+0

Merci @rrirower. Vous êtes le CProperty-Master! –