mfc EDIT编辑框即时在for循环中更新
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mfc EDIT编辑框即时在for循环中更新相关的知识,希望对你有一定的参考价值。
按钮下的for循环,能产生不同的值,我想让for循环每次产生的值,在编辑框中显示,for循环中有sleep停顿,希望说的详细点 或者编个程序 谢谢 我的邮箱:lbxch2008@126.com
m_str是编辑框的变量
void CShiyanDlg::OnBtnView()
CString strl = "1";
for(int i=0;i<3;i++)
m_str = i;
UpdateData(false);
Sleep(1000);
UpdateData(false);
这段代码实现不了,就是让编辑框的内容跟着i的变化更新,
我给你写个代码示例吧
//这是个工作线程,它负责把更改编辑框内的数据
UINT __cdecl WorkerFunc(LPVOID pParam)
{
CString str;
for(int i = 0; i < 4; i++)
str.Format(_T("%d"),i);
SetDlgItemText((HWND)pParam, IDC_EDIT1,str);
Sleep(1000);
return 2;
}
void CShiyanDlg::OnBtnView()
// TODO: 在此添加控件通知处理程序代码
AfxBeginThread(WorkerFunc, (LPVOID)AfxGetApp()->GetMainWnd()->GetSafeHwnd());
在我这是能正常工作的哈,对了的话,不要太吝啬你的分嘛,多少给点,我也花了几分钟给你解决问题的哟,是吧! 参考技术A 没看懂啥意思
你要新建一个线程来处理数据,不能再UI线程中处理。
因为程序没执行完循环是不会跳出的,你的界面重绘消息自然也无法处理,编辑框自然无法改变。
MFC For循环中实时更新显示Edit内容
在for(){}循环中如果有处理函数,然后需要显示的时候,简单的UpdateData(false);是不行的:
for (int i=0;i<10000;i++)
{
m_nT1.Format("%d",i);
m_cT2.SetValue((double)i);
UpdateData(FALSE);
Sleep(1000);
}
这样是不能更新的。加上UpdateWindow()
就可以了:
for (int i=0;i<10000;i++)
{
m_nT1.Format("%d",i);
m_cT2.SetValue((double)i);
UpdateData(FALSE);
UpdateWindow();
Sleep(1000);
}
以上是关于mfc EDIT编辑框即时在for循环中更新的主要内容,如果未能解决你的问题,请参考以下文章
MFC编程入门之二十一(常用控件:编辑框Edit Control)