UpdateData(FALSE)在循环里面出现的问题
for(i = 0;i < m;i++)
{
m_yiducishu = i+1;
UpdateData(FALSE);
}
m_yiducishu关联到IDC_EDIT1上
每次执行时候,输入m=20则IDC_EDIT1显示数值只变化一次
请问这是为什么
[解决办法]
是因为循环太快了。你试试下面的代码
for(i = 0;i < m;i++)
{
Sleep(1000);
m_yiducishu = i+1;
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了。