while(1)
{
MSG msg;
while(::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))
{
if(!AfxGetApp()->PumpMessage())
{
::PostQuitMessage(WM_CLOSE);
return;
}
}
* LONG lIdle = 0;
while(AfxGetApp()->OnIdle(lIdle++));
}
以上用的是别人的一点原代码,并参考了JJHOU的书,用是用了但一知半解.而且运行后,CPU使用率达100%
1.应该说MFC会自动根据MESSAGEMAP分派消息,那用PEEKMESSAGE有何用?
2.如果改用GETMESSAGE,是否程序永远也到不了*处.
3.如果去掉该段代码,是否无碍?(初步来看,CPU占用率已大大降低,但不知是否会有其他问题,如某中消息不响应)
{
MSG msg;
while(::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))
{
if(!AfxGetApp()->PumpMessage())
{
::PostQuitMessage(WM_CLOSE);
return;
}
}
* LONG lIdle = 0;
while(AfxGetApp()->OnIdle(lIdle++));
}
以上用的是别人的一点原代码,并参考了JJHOU的书,用是用了但一知半解.而且运行后,CPU使用率达100%
1.应该说MFC会自动根据MESSAGEMAP分派消息,那用PEEKMESSAGE有何用?
2.如果改用GETMESSAGE,是否程序永远也到不了*处.
3.如果去掉该段代码,是否无碍?(初步来看,CPU占用率已大大降低,但不知是否会有其他问题,如某中消息不响应)
改用GETMESSAGE , CPU占用率就不会有100%了,如果GETMESSAGE取不到消息,
它就等在那里。不会出现“永远也到不了*处.”的问题,因为不可能没有消息来啊。