分类: WINDOWS
2008-11-12 16:01:50
在VC里,很多情况下需要更新控件,也就是调用UpdateData(FALSE);
但是如果是在循环中调用该函数,会导致没有时间来刷新界面,消息得不到相应,从外部看来,似乎整个循环只执行了一次UpdateData(FALSE);如下面的例子
for(i = 0;i < m;i++)
{
m_yiducishu = i+1;
UpdateData(FALSE);
}
这种写法会导致界面没有时间更新。
根据牛人的指点,在代码上添加一点东西,就可以了.如下:
for(i = 0;i < m;i++)
{
m_yiducishu = i+1;
UpdateData(FALSE);
///////////////////////////
MSG msg;
while( PeekMessage(
&msg, 0, 0, 0, PM_REMOVE ) )
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
///////////////////////////////
}
自己推动消息循环就ok了。