16,551
社区成员
发帖
与我相关
我的任务
分享BOOL CMainFrame::PeekAndPump(void)
{
MSG msg;
// message pump
while(::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))
{
if(!AfxGetApp()->PumpMessage())
{
::PostQuitMessage(0);
return FALSE;
}
}
// 模拟空闲处理
LONG iCount = 0;
while(AfxGetApp()->OnIdle(iCount++));
return TRUE;
}
BOOL CMainFrame::PeekAndPump(void)
{
MSG message;
// message pump
while(::PeekMessage(&message,NULL,0,0,PM_REMOVE))
{
::TranslateMessage(&message);
::DispatchMessage(&message);
}
// 模拟空闲处理
LONG iCount = 0;
while(AfxGetApp()->OnIdle(iCount++));
return TRUE;
}
BOOL CWinThread::PumpMessage()
{
ASSERT_VALID(this);
if (!::GetMessage(&m_msgCur, NULL, NULL, NULL))
{
return FALSE;
}
if (m_msgCur.message != WM_KICKIDLE && !PreTranslateMessage(&m_msgCur))
{
::TranslateMessage(&m_msgCur);
::DispatchMessage(&m_msgCur);
}
return TRUE;
}
// message pump
while(::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))
{
if(!AfxGetApp()->PumpMessage())
{
::PostQuitMessage(0);
return FALSE;
}
}