我已经在MFC中创建了一个基于CPropertySheet的模式对话框(使用从CPropertySheet / CPropertyPage派生的BCGSoft类)。当用户在CPropertyPage之一中执行某项操作时,我想启用/禁用其他CPropertyPage中的控件。

假设用户已经单击选项卡以实例化第二个CPropertyPage,这将很好地工作。但是,MFC将第二个CPropertyPage的创建延迟到用户激活它为止。在这种情况下,第二个CPropertyPage中的控件不存在,并且MFC引发错误。

为了克服这个问题,我想通过调用CPropertyPage CPropertySheet中的必要函数来确保所有OnInitDialog()都存在。有人可以解释如何执行此操作吗?

最佳答案

调用函数CPropertyPage::SetActivePage()(当然是在实际的CPropertyPage对象上)可以解决问题。

09-06 18:36