防止界面窗口不能操作

2019-04-15 14:47发布

当线程需要处理大量数据,窗口就不能操作,出现假死,可以添加如下代码

int k = 55;
for(int i=0;i<1000;i++)
{
for(int j=0;j<1000000;j++)
{
k = k*j/3;
}


MSG msg;
bool lbExit = false;
bool lbGot = true;


while(lbGot)
{
if((lbGot = PeekMessage(&msg,NULL,0,0,PM_REMOVE))!=false)
{
if(TranslateMessage(&msg)==0)
DispatchMessage(&msg);


if(msg.message == WM_SYSCOMMAND && msg.wParam == SC_CLOSE)
{
lbExit = true;
break;
}
}
}


if(lbExit != false)
break;
}


MessageBox(L"xxx");

这样窗口可以拖动,但是MessageBox(L"xxx");是在循环结束后才弹出。