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);
}