none
子对话框间多次切换使得程序死掉 RRS feed

  • 问题

  • 环境是Visual Studio 2008

    主对话框为dialogchange,两个子对话框picture2,picture3.
    主对话框中只设置了一个按钮,可以进入picture2页面,picture2中只设置了一个按钮“next”,可以进入picture3页面,picture3中只设置了一个按钮“back”,可以返回picture2页面。
    next按钮下用了
    OnOK();
    Cpicture3 pic3;
    pic3.DoModal();


    back按钮下用了
    OnOK();
    Cpicture2 pic2;
    pic2.DoModal();

    我想实现两个子对话框页面的切换。一般情况下运行时,做picture2喝picture3之间的切换时没有问题的,但是切换的次数多了,可能二十次,程序就会死掉。
    请高手指点下如何解决这个问题?

    2010年5月17日 1:17

答案

  • DoModal()函数,只有窗口关闭的时候才会返回。也就是说,你的这个实现方式,每次切换都会创建出模态对话框。而自己的对话框并没有释放。

    最好通过主对话框管理这两个模态对话框,每次切换都给主对话框Post消息,由主对话框去调用对应的窗口DoModal。


    麻烦把正确答案设为解答。
    • 已标记为答案 Jeson.DJ 2010年5月17日 13:31
    2010年5月17日 2:06
    版主