while(GetMessage(&msg,GetSafeHwnd(),WM_MOUSEFIRST,WM_MOUSELAST)){
if(msg.message==WM_RBUTTONUP){//鼠标右键退出
break;
}//if
if(msg.message==WM_LBUTTONUP){
...
}
Invalidate();//无效!!
}
请教怎么才能不while循环中实现刷新?谢谢!

解决方案 »

  1.   

    你干扰了消息的流动,循环中要加上TranslateMessage和DispatchMessage调用
      

  2.   

    使用如下
      while(  peekmessage() )
      {
        if()
        {;}
        ...
        translateMEsage();
        dispatchMessage();
      }
      

  3.   

    mrxwh(大徐) :
    实践证明,PeekMessage不行,有了消息它就退出了,我希望我能控制它退出循环的.
    也许是参数用的不对吧. orbit(走了走了):
    用GetMessage在循环中加了TranslateMessage和DispatchMessage,仍然不重画窗口,是哪里的原因呢?