在更新画面时,不要完全绘整幅画面,而是只绘被弄脏的部分如题。动态绘图。

解决方案 »

  1.   

    BOOL InvalidateRect( 
      HWND hWnd, 
      const RECT* lpRect, 
      BOOL bErase
    ); 
      

  2.   

    你的闪烁问题我在另一个贴上有回答。一般就是双缓冲+背景擦除
    要刷新部分区域用:InvalidateRect函数,同上
      

  3.   


    我发的另一个帖子http://topic.csdn.net/u/20100323/10/e7202d37-3694-4795-8b66-3e002020bc66.html?15293
    只是我现在的情况,比较特殊,就像我另一个帖子描述的那样。双缓冲:因为我的每次新增加的点都是在屏幕的最右边,那么,为了动态的显示出来,我必须是当前屏幕上的画面向左推动几个像素,这里我设置的是5个像素,这样,最左边的5个像素的图像就退出了屏幕。我是这样实现向左推动的:第一次使用bitblt,将当前屏幕上的图片截取到内存中,截取的时候,左边x方向上,少截取5个像素那么,在内存中的bitmap,右边就多出了5个像素了,新增的点都在最右边的,所以,内存重的bitmap上如此,以实现了动态向左推动的画面。正如我所说,如果你打开菜单,或者什么,挡住部分不管挡住多少,总会有5个像素点,显示的下拉菜单的东西,但是不是全部,因为只有5个像素,我如果设置,每次移动10个像素,那么菜单挡住后,就会有10个像素显示的是菜单的内容。跟时间没关系,我把刷新时间调大,还是会有上诉的问题。
    其实,按照这种说法,
    我的图像时定时向左推动的,
    那我增个画面都属于弄脏的部分。唉。。
    郁闷。
    烦请各位帮忙。
      

  4.   

    此问题连接到此贴http://topic.csdn.net/u/20100323/10/e7202d37-3694-4795-8b66-3e002020bc66.html?19038