作者:跟随自己的2502917817 | 来源:互联网 | 2023-05-17 18:27
如题,我定义了一个CpropertySheet的派生类CMySheet,并添加了几个属性页如Cpage1,Cpage2,Cpage3等。Cpage1上有一组单选按钮,我需要根据单选按钮的值,从而确定是
如题,我定义了一个CpropertySheet的派生类CMySheet,并添加了几个属性页如Cpage1,Cpage2,Cpage3等。Cpage1上有一组单选按钮,我需要根据单选按钮的值,从而确定是显示Cpage2还是显示Cpage3.如何实现? 麻烦具体点,谢过先。
3 个解决方案
根据按钮,把信息传递给CPropertySheet,然后来控制显示哪个CPropertyPage
看了别的帖子,调用CPropertySheet::SetActivePage()函数来选择激活标签页。我现在标签页的索引是按照:Cpage1,Cpage2,Cpage3 顺序排列的。在Cpage1中重载了OnWizardNext函数,就是在单击下一步按钮时,会调用这个函数,函数代码如下:其中m_RadiozButton关联了单选按钮。
LRESULT CFirstPage::OnWizardNext()
{
// TODO: 在此添加专用代码和/或调用基类
UpdateData();
CPropertySheet* pParent = (CPropertySheet*) GetParent();
if(m_RadiozButton==0)
{
if(pParent->GetSafeHwnd())
{
pParent->SetActivePage(0);
}
}
if (m_RadiozButton==1)
{
if(pParent->GetSafeHwnd())
{
pParent->SetActivePage(2);
}
}
return 0;
//return CPropertyPage::OnWizardNext();
}
这样执行的结果是对的。在打开第一个属性页后,可以按照单选钮的值,进入第二或者第三页。
只是SetActivePage()里的参数,我是蒙出来的。不知道该怎么解释。麻烦知道的解释下。因为后面还要用到这个函数。
nPage
Index of the page to set. It must be between 0 and one less than the number of pages in the property sheet, inclusive.