今天有个同事谈到了实时显示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++;
-
}