一个循环! 
while(stat)
{
 。。

}我想通过出发一个按钮消息函数改变正在循环中stat为FALSE,跳出循环!
可惜做不到! 消息好想根本就没有执行!
高手有什么办法 在消息函数改变stat为FALSE 实现终止上面的循环“??

解决方案 »

  1.   

    volatile int nTemp;
    for (m_nCount = 0; m_nCount < nMaxCount; m_nCount++) {
    for (nTemp = 0; nTemp < 100000; nTemp++) {
    // uses up CPU cycles
    }
    if (::PeekMessage(&message, NULL, 0, 0, PM_REMOVE)) {
    ::TranslateMessage(&message);
    ::DispatchMessage(&message);
    }
    }
    参考一下
      

  2.   

    谢谢
    我说的while  不想用FOR 能解释一下思路么?
      

  3.   

    问题好想是 如果消息加入的列队里 好象也不执行
    好象线埕都被while站用!
      

  4.   

    应该不是把
    系统的线程不会被应用程序所占用的
    例如,你可以在任何地方加入
    sendmessage(WM_CLOSE)
    来退出程序
      

  5.   

    谢谢楼上!
    我不想退出对话框!
    只是想终止循环 推出循环! 
    改变stat 的直为FALSE
    有什么好办法?!
      

  6.   

    while 和 for 可以互相替换的
      

  7.   

    我想知道在while 的条件下 怎么推出循环!?
      

  8.   

    sendmessage(WM_CLOSE)
    这只是个例子
    你可以使用线程什么的实现,感觉应该可以.没有调查就没有发言权
      

  9.   

    可以定义一个函数
    bool GetStat()
    {
    ......
    }
    while(stat)
    {
    stat=GetStat();
     。。

    }
    就可以了
      

  10.   

    在while里面, PeekMessage, 然后,条件符合的化,就break,不就可以了么?
      

  11.   

    楼上能说的具体点么  截获什么消息才能改变stat的植?
      

  12.   

    if (::PeekMessage(&message, NULL, 0, 0, PM_REMOVE)) {
    ::TranslateMessage(&message);
    ::DispatchMessage(&message);放在while里可以解决了
      

  13.   

    while里面加入消息处理的代码,这样你的界面就不会死掉