MFC控件实时更新

MFC控件实时更新

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

 

 

你可能感兴趣的:(Visual,C++,软件开发,c++)