我想对一个大运算加一个用户取消键,即在用户点击Cancel时系统推出当前的运算程序.是否需要令起一个线程控制,如何实现

解决方案 »

  1.   

    在运算过程中不断地处理消息:if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
    {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }
      

  2.   

    运算逻辑放线程里,按钮在主线程用
    TerminateThread结束子线程
      

  3.   

    同意 everandforever ,如果你的大运算是由反复的子运算组成的话,在每步运算中添加消息泵:
    MSG msg;
    if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
    {
         if (msg.message = WM_QUIT)
               return msg.wParam;
    }
    用户点击Cancel时向子线程发送WM_QUIT消息就可以了。