我想在我的属性表中添加属性页。我会告诉您我的意图,即最初我创建了一个属性表并添加了4个属性页。现在处于向导模式,因为我们有Next,Back,Cancel用于在页面之间切换。我想在单击“下一步”按钮时添加不同的页面。另外我有第一个属性页面,其中包含三个按钮,如果单击第一个按钮,我必须添加页面,如果转到第二个页面,我必须能够添加一个页面。与前一个不同。同样,当我点击第三个按钮时,我必须添加一个不同的页面。我将显示页面序列,
第一页:
Button1的:
将Button2:
将Button3:
返回下一步取消
如果" Button1"单击然后单击下一步将启用,然后单击下一步,然后应添加Page2并再次回滚并单击button2。
如果"按钮2"单击,然后单击“下一步”,然后单击“下一步”,然后添加“页面3”并再次回滚并单击“按钮3”。
如果" Button3"单击,然后单击下一步,然后单击下一步,然后添加Page4。
我尝试在"虚拟LRESULT OnWizardNext()"方法,返回CPropertyPage :: OnWizardNext()。但它没有正常工作,任何人都可以让我知道在哪里处理事件,这样我必须能够在三个不同的按钮时添加不同的页面。
答案 0 :(得分:0)
您可以随时在OnWizardNext中调用RemovePage,然后可以在向导上调用AddPage。 但是你永远不应该删除当前活动的页面(导致OnWizadNext调用)。
此代码将删除当前页面之后的所有页面,您可以自由添加其他页面。返回0使向导继续到下一页:
// Delete all following pages
CMySheet *pSheet = static_cast<CMySheet*>(GetParent());
while (pSheet->GetActiveIndex()<pSheet->GetPageCount()-1)
pSheet->RemovePage(pSheet->GetPageCount()-1);
if (case1)
pSheet->AddPagesForCase1();
else if (case2)
pSheet->AddPagesForCase2();
...
// Do the default and advance to the next page
return 0;