MFC中卡拉OK字体的定时器实现,使用DC的DrawText函数实现

 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 }

效果如下所示:

MFC中卡拉OK字体的定时器实现,使用DC的DrawText函数实现

你可能感兴趣的:(text)