今天有个同事谈到了实时显示MFC的EDIT控件,我想了下,只能添加线程才能完成这个目标。但线程中不能使用Updatedata函数。
想到两个解决方案,
1. 发送消息,把线程中的数据发送到主线程进行实时显示(我没试,但肯定可以实现)。
2. 使用getDlgItem通过ID来显示数据。
unsigned int _stdcall CtestThreadDlg::ThreadFun(LPVOID pParam)
{
CtestThreadDlg *Dlg = (CtestThreadDlg *)pParam;
while(Dlg->m_iNum<200000)
{
//发消息
char sz[100]="";
Dlg->ShowData();
CString temp;
temp.Format("%d", Dlg->m_iNum);
Dlg->GetDlgItem(IDC_EDIT_NUM)->SetWindowTextA(temp/*itoa(Dlg->m_iNum, sz, 10)*/);
}
return 0;
}
void CtestThreadDlg::ShowData()
{
m_iNum++;
}