zoukankan      html  css  js  c++  java
  • 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 }

    效果如下所示:

  • 相关阅读:
    笔试题集
    qs库使用指南
    如何打造难用,bug多的产品
    history路由模式下的nginx配置
    监听器Listener
    过滤器Filter
    表单重复提交问题
    验证码原理及验证
    Git的使用
    JavaWeb的登陆与注销功能
  • 原文地址:https://www.cnblogs.com/dongsheng/p/3596077.html
Copyright © 2011-2022 走看看