在选项卡选择上更新 CPropertyPage

Updating CPropertyPage on tab selection

我正在寻找单击后更新 CPropertyPage 的最佳方法。目前,我的页面在 OnInitDialog() 期间收到它的信息。然而,当用户在第一页上做某事时,它会影响第二页上的内容。

我能想到的唯一解决方案是 "Update" 按钮。单击该按钮后,页面将通过调用 OnInitDialog() 期间发生的相同函数来刷新其信息。当用户单击 CPropertySheet 的不同 CPropertyPage 时是否会发生事件?

使用 "Update" 按钮是糟糕的设计,因为它需要用户强制更新。相反,您应该注意维护可能导致更新的值的状态。这可以在结构或 class 对象中完成,然后可以访问需要更新值的页面的 CPropertyPage::OnSetActiveOnSetActive 在页面变为活动页面之前调用。您有机会在页面显示之前更新页面上的值。