MSG m_msgCur;
for (int j = 0;j<2; j++)
{
if (::PeekMessage(&m_msgCur, NULL, NULL, NULL, PM_NOREMOVE))
{
// pump message, but quit on WM_QUIT
if(!AfxGetApp()->PumpMessage()) {
return ;
}
}
Sleep(50);
}

解决方案 »

  1.   

    那为什么用PM_NOREMOVE呢? 为什么不用PM_REMOVE呢?为什么不从线程队列里删除呢,既然即将被发往窗口过程处理了?跟PM_REMOVE有什么区别?
      

  2.   

    楼主看好程序的目的,它主要是想把消息给pump出来,而前面的peek只不过是看一下是否消息循环中是否有消息而已,有就pump,没有就不pump,这样省得pump出空消息来麽。