`
huobengle
  • 浏览: 863711 次
文章分类
社区版块
存档分类
最新评论

9.定时器的使用以及CTime类的使用

 
阅读更多

定时器(Timer)在 Windows 的程序设计中很多地方都能用到,他的主要用途是按程序的设定间隔时间,间歇性的产生 WM_TIMER 消息,发送到指定窗口
之后,在窗口中对 WM_TIMER 消息进行处理,完成指定的任务!

①、定时器函数的讲解:
◆ 定时器启动函数:SetTimer
◆ 定时器响应函数:OnTimer
◆ 定时器结束函数:KillTimer

时间间隔范围:USER_TIMER_MINIMUM(最小值) 到 USER_TIMER_MAXIMUM(最大值)
#define USER_TIMER_MAXIMUM 0x7FFFFFFF 毫秒
#define USER_TIMER_MINIMUM 0x0000000A 毫秒

如果需要更精确的定时器,详见:http://www.cctry.com/thread-6536-1-1.html

②、限制定时器的响应次数;

③、利用 CStatic 控件动态显示系统时间:
◆ CStatic 控件响应消息的准备:1>ID不能是 IDC_STATIC;2> 控件属性的 Notify 设置为 True;
◆ CTime 类的简单实用;
CTime mTime;
mTime = CTime::GetCurrentTime();
CString strTime = mTime.Format(_T("现在的时间是 %Y-%m-%d %H:%M:%S"));//unicod下加汉字会出错,解决方法见下面
SetDlgItemText(IDC_STATIC_SHOW, strTime);
◆ 更改 CStatic 控件的文字颜色;
响应WM_CTRLCOLOR消息
if (nCtlColor == CTLCOLOR_STATIC && pWnd->GetDlgCtrlID() == IDC_SHOW){
pDC->SetTextColor(RGB(0, 0, 255));
pDC->SetBkMode(TRANSPARENT);
return CreateSolidBrush(GetSysColor(COLOR_3DFACE));
}

◆ 时间格式中有中文的情况如何处理;
#include <locale.h>
_tsetlocale(LC_ALL, _T("chs"));//初始化函数中
//本函数用来配置地域的信息,设置当前程序使用的本地化信息。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics