我已经在MFC中创建了一个基于CPropertySheet
的模式对话框(使用从CPropertySheet
/ CPropertyPage
派生的BCGSoft类)。当用户在CPropertyPage
之一中执行某项操作时,我想启用/禁用其他CPropertyPage
中的控件。
假设用户已经单击选项卡以实例化第二个CPropertyPage
,这将很好地工作。但是,MFC将第二个CPropertyPage
的创建延迟到用户激活它为止。在这种情况下,第二个CPropertyPage
中的控件不存在,并且MFC引发错误。
为了克服这个问题,我想通过调用CPropertyPage
CPropertySheet
中的必要函数来确保所有OnInitDialog()
都存在。有人可以解释如何执行此操作吗?
最佳答案
调用函数CPropertyPage::SetActivePage()
(当然是在实际的CPropertyPage
对象上)可以解决问题。