MFC是对话框形式的里面有三个按钮,分别编号为1,2,3按下1后,1运行到一半要等待按钮2按下并执行完按钮2的事件后才能继续执行按钮1的事件,然后按钮2事件里面要等待按钮3被按下并执行完毕后才能继续执行按钮2的事件。这个过程中程序不能被卡死,不知道该怎么做了,我尝试过用定时器,不行

解决方案 »

  1.   

    直接在1中调用2,2中调用3就行了
    b1()
    {
    ..
    b2();
    ..
    }
    b2()
    {
    ..
    b3();
    ..
    }
    b3()
    {
    ..
    }
      

  2.   

    你返回了就接不到2的信号了,我是想让1等待2,按下2才就继续执行,等的过程中这个对话框MFC不能死掉,可以进行其他操作
      

  3.   

    非常简单
    建立2个CEvent或者CMutexevent2和event3
    然后
    按钮1
    处理之前任务,然后
    WaitSingleObject(event2,infinite)按钮2
    处理之前任务,然后
    WaitSingleObject(event3,infinite)
    SetEvent(event2);按钮1
    SetEvent(event3);解决了。
      

  4.   

    按钮3
    SetEvent(event3);打字错误
      

  5.   

    谢谢啦,这应该能解决我的问题了,还有一个小点,如果我把这些代码放在线程里面然后直接强制终止的话,不需要我对事件做什么吧?线程里面我绝对不放任何new和malloc的,是不是线程强制终止了,那些等待事件也就没了?
      

  6.   

    放到线程中,
    按钮1的事,
    先做的,在线程上半部份。
    然后设定一个事件,等待按钮2按下,然后执行一些CODE后,设事件,等按钮3按下,3完成后,释放3的事件,然后接着执行按钮2的事,完了,释放2的事件,接着RUN1的事,当然一个按钮,一个线程了。