vc中如何在编辑框中实时显示数据?

用upDateData()太慢了,我想每秒更新,用的是sleep(1000),请高手赐教
2024-12-27 14:09:01
推荐回答(5个)
回答1:

不要用Sleep函数,它的精度非常低,最小计时精度仅为30ms,用sleep函数处在于延时期间不能处理其他的消息,如果时间太长,就好象死机一样,CPU占用率非常高,只能用于要求不高的延时程序中。我觉得你说的慢可能就是这个原因。

还有使用定时器的方法吧,如何你用VC6.0,可以按照以下方法操作:
1、按Ctrl+W激活ClassWizard,在“Message Map”选项卡中Class Name选择你要添加定时器的类,接着在“Message”中选“WM_TIMER”,最后按下“Add Funcation”。然后在下面的Member functions里双击OnTimer进入OnTimer函数(或在源程序中找到OnTimer函数),在OnTimer函数中添加UpdateData函数;

2、 启动定时器:在你需要开始每秒更新的地方,添加申请Timer的语句:
SetTimer(1,1000,NULL);//申请一个标识值为1的Timer,定时间隔为1000毫秒(1秒)。

3、当你想停止更新时使用:KillTimer(1);来停止这个定时器

回答2:

将编辑框定义为控件型变量(CEdit),而不是用一个CString变量来关联。
控件型变量就有很多方法来操作数据了,比如CEdit edt;edt.setwindowtext;等等等等。

回答3:

不是很明白你的意思……什么叫UpdateData太慢了?
你想每秒都更新那你每秒都调用一次UpdateData(FALSE)不就行了嘛,反正你先为绑定好的变量赋值再调用UpdateData(FALSE)就OK了

回答4:

先用向导把控件和一个CEdit变量关联,
然后
m_edit.SetWindowText

回答5:

用Ontimer()
Settimer(1,1000,NULL);
然后调用函数upDateData()