UINT SetTimer(UNIT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND,UINT ,UINT,DWORD));
第一个参数是标识定时器本身的ID
第二个参数是设定的时间
第三个参数是回调函数,
如果第三个参数设置为NULL 则定时器会放入消息队列中会被CWnd 对象调用。(同过WM TIME 消息映射处理)
//模拟卡拉OK 文字变色的系统,设置字体变色
void CTextView::OnTime(UNIT nIDEvent)
{
m_nWidth += 5;
CClientDC dc(this); //定义好dc,获取文字高度
TEXTMETRIC tm;
dc.GetTextMetrics(&tm);
CRect rect; //定义一个渐变的矩形
rect.left = 0;
rect.top = 200;
rect.right = m_nWidth;
rect.bottom = rect.top + tm.tmHeight;
dc.SetTextColor(RGB(255,0,0)); // 设置显示的颜色
CString str;
str.LoadString(IDS_STRING);
dc.DrawText(str,rect,DT_LEFT); //让显示的矩形不断变宽,起到渐变的效果。。
CSize sz = dc.GetTextExtent(str);
if(m_nWidth > sz.cx)
{
m_nWidth = 0;
dc.SetTextColor(RGB(0,255,0));
dc.TextOut(0,200,str);
}
CView::OnTimer(nIDEvent);
}