在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了。