1 void CTextView::OnTimer(UINT_PTR nIDEvent) 2 { 3 m_nWidth += 5; // 在构造函数中初始化为 0; 4 5 CClientDC dc( this ); 6 TEXTMETRIC tm; 7 dc.GetTextMetrics( &tm ); 8 CRect rect; 9 rect.left = 0; 10 rect.top = 200; 11 rect.right = m_nWidth; 12 rect.bottom = rect.top + tm.tmHeight; 13 dc.SetTextColor( RGB(255, 0, 0) ); // 字体设置成红色 14 CString str; 15 str.LoadStringW( IDS_STRINGVC ); 16 dc.DrawText( str, rect, DT_LEFT); // 效果实现的核心函数,用来控制显示的矩形大小来控制效果 17 18 CSize sz = dc.GetTextExtent( str ); 19 if( m_nWidth > sz.cx ) // 超过字体长度时候从头显示 20 { 21 m_nWidth = 0; 22 dc.SetTextColor( RGB(0, 255, 0) ); 23 dc.TextOutW( 0, 200, str ); 24 } 25 26 CView::OnTimer(nIDEvent); 27 }
效果如下所示: