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的变化更新,

同意gamespy1991的说法,呵呵
我给你写个代码示例吧
//这是个工作线程,它负责把更改编辑框内的数据
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 编辑框内容更新方法以及滚动条设置

请教MFC中如何循环处理相同类型的控件,如编辑框之类的?

MFC中如何用for循环将一组值在编辑框中显示?

MFC编程入门之二十一(常用控件:编辑框Edit Control)

VS2010-MFC(常用控件:编辑框Edit Control)

mfc 动态更新编辑框内容