MFC编辑框数据实时更新问题!!求解答!!!
其中一段代码如下for(i=0;i<gener;i++){ClearAllSeries();//清图m_CurrenG=i+1;//获得当前迭代数,m_CurrenG为编...
其中一段代码如下
for (i = 0; i < gener; i++)
{
ClearAllSeries(); //清图
m_CurrenG = i + 1; //获得当前迭代数,m_CurrenG为编辑框的变量
UpdateData(false); //更新显示
..
...
...
.(中间计算程序省略)
}
我遇到的问题是:m_CurrenG对应的编辑框显示不能实时更新,要在for循环最后一个循环结束后才更新,显示最终的结果,为什么啊?怎样才能实时地更新? 展开
for (i = 0; i < gener; i++)
{
ClearAllSeries(); //清图
m_CurrenG = i + 1; //获得当前迭代数,m_CurrenG为编辑框的变量
UpdateData(false); //更新显示
..
...
...
.(中间计算程序省略)
}
我遇到的问题是:m_CurrenG对应的编辑框显示不能实时更新,要在for循环最后一个循环结束后才更新,显示最终的结果,为什么啊?怎样才能实时地更新? 展开
展开全部
在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了。
但是如果是在循环中调用该函数,会导致没有时间来刷新界面,消息得不到相应,从外部看来,似乎整个循环只执行了一次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了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询