我用vc在程序中插入一副bmp位图,然后在位图上面再显示一些控件avi格式的动画。但是出现如下问题:因为我要每秒刷新位图,这样就将显示的动画盖住了,然后就必须刷新动画让它显示在位图上面;然后程序又刷新位图……。就这样周而复始,对于较大的动画看上去就有点闪烁。
这是我现在的做法,请问哪位有更好的做法

解决方案 »

  1.   

    创建透明窗口,把二者放到不同的窗口中,设置avi的窗口置于最上层,只刷新最上层,或者置位图为最下层窗口
      

  2.   

    only Invaladate the specific Rect,use InvaladataRect()
      

  3.   

    位图全部刷新是因为上面有很多Edit区域包含数据,需要实时刷新。
      

  4.   

    透明窗口的方法好像行不通,试着把realplay变成透明的,本身它就会闪阿闪的,把视频控件放在一格和它大小一样的窗口里,然后把这个窗口作为子窗口放在位图的窗口里试试,再不行就把子窗口的OnPaint()覆盖掉,不让它去调OnDraw。
      

  5.   

    BOOL CMyJobView::OnEraseBkgnd(CDC* pDC) 
    {
    // TODO: Add your message handler code here and/or call default
       return FALSE;
    // return CView::OnEraseBkgnd(pDC);
    }
      

  6.   

    to:syy64(太平洋) 
    这句好像是绘制背景的函数吧,让它直接返回是什么意思
      

  7.   

    不刷背景图的话,那么我里面很多包含数据显示的Edit也不能变化了啊?
      

  8.   

    你的edit数据刷新靠的是update吧,和界面有关系吗?