也就是说,当最后一个叶面 Finish 了后,
前面的叶面,能否指导是否是 Finish 。
这样我只要在相应的函数里面填写,“完成”后的信息。目前都是在 OnWizardNext 中填写,这样的话人家在第二步中选择取消,我也没法改回去了。
庆祝位高手帮忙。类似于这样:void On最后完成()
{
   把设置保存到外面。
}void On某一步取消()
{
   什么也不做。
}因为程序是多线程的,所以即使是模态的对话框,背景也是在不停的执行。

解决方案 »

  1.   

    把结果存放在一个地方(temporary),最后在一起更新或者都取消.................
    不要逐个页面处理,要看成是一个整体................
      

  2.   

    OnWizardFinish
     Called by the framework when the Finish button is clicked while using a wizard-type property sheet.
     
      

  3.   

    OnWizardFinish 肯定不行,因为前面的页面没有触发。
    只有最后一个页面被触发。因为我的页面是根据第一步的选择不同,后面的页面也不同,我不想把相同的代码写道多个结束的地点。页面1 --->  页面2(a) ---> 页面3(f)
                页面2(b) ---> 页面3(h)
                页面2(c) ---> 页面3(i)
                         ---> 页面3(j)由多个结束点,所以不我想在多个 OnWizardFinish 处理。
    我想在一个统一的地方,最好有那个事件。程序中也有多个地方,调用这个向导。
      

  4.   

    常规的做法应该是在最后一页重载OnWizardFinish函数,前面各页重载OnWizardNext函数。如果要在完成时访问前面的某页,可以在最后一页的OnWizardFinish函数中处理。
      

  5.   

    to cnzdgs,
    但是我的结束页有多个,就是说我在每一个 OnFinish 中 都要那样做了吗?
      

  6.   

    页面1 --->  页面2(a) ---> 页面3() 
                页面2(b) 
                页面2(c) 
    楼主不妨设计成开始页面只有一个 ,结束页面也只有一个这样可以处理OnWizardFinish函数每个页面可以设置相应的成员变量,OnWizardNext中保存你选择的数据
      

  7.   

    那就需要在每个结束页都重载OnFinish函数,对于一些重复的代码,可以做成函数给各个页的OnFinish调用。