mfc 动态更新编辑框内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mfc 动态更新编辑框内容相关的知识,希望对你有一定的参考价值。

我把程序放在一个按钮响应函数里,程序运行过程中有几个结果我想在一个编辑框里输出,请问如何实时输出?我用的是SetDlgItemText(ID,strS),现在是几个结果得程序运行完才能一起输出,能不能出来一个结果就立刻输出到编辑框里?
网上有说涉及多线程,可不可以不这么麻烦就能解决?

在每个结果出来的时候都调用一次SetDlgItemText就可以了,这样子编辑框最终只会保留最后一次调用时的结果 参考技术A 没代码不好说,不过多线程是一个很好的解决办法!追问

比如:for(i=0 ; i<3; i++) strS+=_T("123"); SetDlgItemText(IDC, strS); str+=_T("\r\n") strS+="456"; 我想要的输出效果是:
"123"//第一个循环结束后就出来,而不是等所有运行完后出来
"123"
"123"
"456"

MFC的编辑框内容可以动态更新吗? 我用编辑框控件显示系统时间,想让它随时间变化自动更新,该怎么做?

//获取系统时间并显示

CTime t = CTime::GetCurrentTime();
CString strTime ;
strTime =t.Format( "%H:%M:%S ");
GetDlgItem(IDC_EDIT_TIME)->SetWindowText(strTime);
//这样写了运行时显示不出时间

void CSystemAlarmClockDlg::OnTimer(UINT nIDEvent)

// TODO: Add your message handler code here and/or call default
if(1==nIDEvent)

//获取系统时间并显示

CTime t = CTime::GetCurrentTime();
CString strTime ;
strTime =t.Format( "%H:%M:%S ");
GetDlgItem(IDC_EDIT_TIME)->SetWindowText(strTime);
UpdateData(FALSE);

CDialog::OnTimer(nIDEvent);

参考技术A 开启定时器: SetTimer(1,1000);
ClassWizard 实现对话框OnTimer函数,并在里面写入:
if(1==nIDEvent)

//你上面的代码
UpdateData(FALSE);

追问

我上面的代码是在对话框初始函数里写的,把代码移到OnTimer后运行显示不了啊

追答

推荐可以继续回答了?这个改的好,麻烦了很多天了,呵呵。

断点跟踪一下吧,只要断点进入if里面,应该没问题的。你可以是ID没有对应,或者定时器没有匹配?

追问

搞定了,
UpdateData(FALSE)要写为
UpdateData(TRUE);才行

本回答被提问者和网友采纳
参考技术B TIME 消息响应 里面做更新处理

以上是关于mfc 动态更新编辑框内容的主要内容,如果未能解决你的问题,请参考以下文章

MFC 编辑框内容更新方法以及滚动条设置

mfc EDIT编辑框即时在for循环中更新

MFC中的Eidt控件怎样才能实时显示更新的内容?

MFC - 如何在运行时更新编辑框? (C++)

MFC编辑框数据实时更新问题!!求解答!!!

mfc c++ 从编辑控件更新文本文件