代码改变世界

MFC通过button控制编辑框是否显示系统时间(动态显示)

2017-08-05 18:49  tlnshuju  阅读(412)  评论(0编辑  收藏  举报

1.在dlg.h中public

bool flag;

static UINT time(void *param);

2.在构造函数中

flag=false;


3.在button的生成函数中

if(flag)
{
flag=false;
//GetDlgItem(IDC_ShowTime)->SetWindowTextW(_T(" "));
/*m_showtime.SetWindowText(_T(""));
m_showtime.SetFocus();*/
//UpdateData(true);
CEdit* pedt = (CEdit*)GetDlgItem(IDC_ShowTime);
         
       pedt->SetWindowText(_T(""));////////////此处有问题。不能清空编辑框。或者说清空之后又恢复了。

                                                         //不知道怎么回事,假设有人知道,请告诉我。
}
else
{
AfxBeginThread(time,this);//,THREAD_PRIORITY_IDLE);

flag=true;

}

4.

UINT CmyDlg::time(void *param)
{
CmyDlg *dlg = (CmyDlg*)param;
CEdit *SysTimeBox = (CEdit*)dlg->GetDlgItem(IDC_ShowTime);//IDC_ShowTime为编辑框ID
CString str;
while (dlg->flag)
{
Sleep(1000);
CTime time = CTime::GetCurrentTime();
str = time.Format(_T("%Y-%m-%d %H:%M:%S %A"));
SysTimeBox->SetWindowTextW(str);
}
return 0;
}