设置一个布尔变量,在循环中不断检测这个布尔值是否为真,如果是的话则break,否则继续。
在响应用户的WM_KEYDOWN和WM_LBUTTONDBLCLK事件,并将布尔变量值置为真。

解决方案 »

  1.   

    bool bCanExit;
    bCanExit=false;
    while(!bCanExit)
    {
        .....
        if(Condition)
           bCanExit=true;
    }
      

  2.   

    为什么要用while 循环呢?这样岂非资源浪费?
    windows 本身是消息驱动的,只要处理esc键或双击鼠标消息决定自己的
    程序行为!
      

  3.   

    用消息响应的方法较好,在WM_LBUTTONDBCLICK或WM_CHAR中设置变量,使while循环的条件不满足
    就行了。注意善后处理,不可一退了之,要记得windows是何等的脆弱!
      

  4.   

    请问
    怎样在while循环中
    设置消息响应?
    Condition?是什么意思?
      

  5.   

    对Wingsun的补充
    在while循环中必须加入如下代码,否则程序在退出while循环前根本
    无法响应任何消息
          MSG msg;
          while (::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
          {
            ::TranslateMessage(&msg);
            ::DispatchMessage(&msg);
          }
      

  6.   

    对,需要加入消息的处理。Condition是你需要推出循环的条件,满足就退出。这些条件可以使用户双击鼠标,按了Escape键等。