Chinaunix首页 | 论坛 | 博客
  • 博客访问: 94075
  • 博文数量: 23
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 205
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-12 12:22
文章分类

全部博文(23)

文章存档

2009年(3)

2008年(20)

我的朋友

分类: 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了。

阅读(2563) | 评论(0) | 转发(0) |
0

上一篇:stl-map

下一篇:linux-vi编辑器

给主人留下些什么吧!~~