Code Bye

实现系统时间显示无闪烁,如何将上一时刻的显示清空

CTime time;
time = CTime::GetCurrentTime(); //获得当前时间

CString m_str_time_date = _T(“”);
m_str_time_date.Format(_T(“%02d/%02d/%d %02d:%02d:%02d”),
time.GetMonth(),time.GetDay(),time.GetYear(),
time.GetHour(),time.GetMinute(),time.GetSecond()); //格式转换
dc.SelectObject(&m_time_data); //将m_time_data这个字体,加载到dc中
dc.SetBkMode(TRANSPARENT); //设置透明的背景模式
dc.SetTextColor(RGB(255,255,255)); //白色

dc.ExtTextOut(TIME_DATE_X1,TIME_DATE_Y1,ETO_CLIPPED,NULL,L””,NULL); //输出 空
dc.ExtTextOut(TIME_DATE_X1,TIME_DATE_Y1,ETO_CLIPPED,NULL,m_str_time_date,NULL); //输出时间,日期
DeleteObject(m_time_data); //释放内存
———————-
dc.ExtTextOut(TIME_DATE_X1,TIME_DATE_Y1,ETO_CLIPPED,NULL,L””,NULL); //输出 空
就是这句,执行后显示不能清除,有没有好办法,网上说的双缓冲太麻烦,拜托

5分

双缓冲是解决闪烁问题的经典方法,不是很复杂。得有信心
 
只有一种方法吗

15分

调试双缓存吧,其它暂时没有好方法

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明实现系统时间显示无闪烁,如何将上一时刻的显示清空