我在今日插件中,想实现文字的滚屏显示!也就是说,在一个rect中,我该如何实现滚屏显示的效果!!急求,在线等!!

解决方案 »

  1.   

    滚屏的效果很好实现:
    在你的兼容dc中画图的时候改变你的贴图的x或者y轴的值就好了
    做一个时间控制,一切不就over了?
    如果实在不明白到网上下载一个屏幕保护的例子看下
      

  2.   

    你是说用双缓存,将显示的文字画在内存中,然后复制到屏幕上,在内存中,改变rect的位置?是这个意思吗?有没有具体的例子可以参考下,我从网上找了好久,没有找到合适的啊!
      

  3.   


    void CZM485View::OnTimer(UINT_PTR nIDEvent)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值//l
            m_nWidth += 5; CClientDC dc(this);
    TEXTMETRIC tm;
    dc.GetTextMetrics(&tm);
    CRect rect;
    rect.left = 100;
    rect.top = 20;
    rect.right = m_nWidth;
    rect.bottom = rect.top+tm.tmHeight; dc.SetTextColor(RGB(80,180,80));
    dc.SetBkMode(TRANSPARENT); //将文本背景设为透明的
    CString str;
    str.LoadString(IDS_STRROLL1);
    dc.DrawText(str,rect,DT_LEFT);
    //rect.top=150;
    //rect.bottom=rect.top+tm.tmHeight;
    //dc.DrawText(str,rect,DT_RIGHT); CSize sz = dc.GetTextExtent(str);//l
    if(m_nWidth>(sz.cx+120))
    {
    m_nWidth = 100;
    } CView::OnTimer(nIDEvent);
    }这个是我自己做得可以实现滚动效果!
      

  4.   

    不过要先定义一个timer!
    在XXView::OnCreate中加SetTimer(1,100,NULL);m_nWidth 为VIEW的成员变量,初始化为100.
      

  5.   

    如果要很平滑的滚动,要怎么做呢?我每次移动两个像素,timer定位20毫秒,屏幕闪的非常厉害,cpu占用率非常高。那些显示滚动歌词的软件是怎么做到平滑滚动的呢?
      

  6.   

    双缓冲的方式在客户区移动不会产生闪烁的情况
    如果你闪了,肯定是双缓冲用的不对
    具体的例子,可以上vckbase上查查相关的代码
      

  7.   

    不知道在非mfc工程里,如何实现双缓存啊!!
      

  8.   

    双缓冲可以参照http://www.vckbase.com/document/viewdoc/?id=1612
      

  9.   

    MFC的我以前也做过啊,可不是MFC工程,是个wince的DLL啊!在这里如何使用双缓存呢?
      

  10.   

    各位高人,你们所说的都是MFC的工程,而我现在这个是非MFC的工程,所以…………在MFC下,如何实现双缓存啊!!
      

  11.   

    重载erasebkgnd,直接return TRUE;
    bitblt
      

  12.   

    其实非MFC和mfc道理都是一样的,只不过MFC对gdi的api封装了成CDC,和CBitmap等类