MSG message; //交出控制
do
{
while(::PeekMessage(&message,NULL,0,0,PM_REMOVE))
{
::TranslateMessage(&message);
::DispatchMessage(&message);
}
}while(m_bPause);用这段代码实现暂停功能,但是在程序关闭以后,这个进程没有终止,cpu利用率100%,怎么回事!郁闷阿!
do
{
while(::PeekMessage(&message,NULL,0,0,PM_REMOVE))
{
::TranslateMessage(&message);
::DispatchMessage(&message);
}
}while(m_bPause);用这段代码实现暂停功能,但是在程序关闭以后,这个进程没有终止,cpu利用率100%,怎么回事!郁闷阿!
要加这样的语句:
{
PostQuitMessage();
m_bPause = 0;
}
while(::PeekMessage(&message,NULL,0,0,PM_REMOVE))
{
::TranslateMessage(&message);
::DispatchMessage(&message);
}
上面代码是不断循环的,知道发出WM_QUIT消息。而你把m_bPause加在了他们的外面,
平时根本就到不了外面的while语句。当然你要暂停是,写PostQuitMessage()语句,而
m_bPause = 1;这样就暂停了。妙啊,楼主,你的主意很妙的!
do
{
if(PauseNow){
while(::PeekMessage(&message,NULL,0,0,PM_REMOVE))
{
::TranslateMessage(&message);
::DispatchMessage(&message);
}
}
}while(m_bPause);