一个gdi画图问题:
假设先画图片,在图片上画几何图形,我采用memdc方式,每次计算图形的validate rect,然后invalidaterect,结果,在98上运行比较慢(告别是画的图形比较大时)。
如果采用setrop(),xor pen的方法,每次擦除后留下的是背景色(白色),计算线的validaterect时,只是计算它的最大最小x,y坐标,导致线存在角度时刷新区域具大,我想使用InvalidateRgn()但没有头绪,所以想请各位指点下!

解决方案 »

  1.   

    InvalidateRect (hwnd, NULL, TRUE) ;
      

  2.   

    需要使整个显示区域有效,可以呼叫
    ValidateRect (hwnd, NULL) ;
      

  3.   

    这么说,一时半会儿是不清楚,参考:《深入浅出 MFC》之<View功能加强与重绘效率的提高>
    来信索取电子版:[email protected]
      

  4.   

    画图用一个dc,画线使用另外的dc,然后bitblt,dwRop参数使用SRCAND
      

  5.   

    为什么要两个dc,我用的是一个memdc,还有参数是srcAnd什么意思呀?
      

  6.   

    《深入浅出 MFC》 我买了,看了,基本上还是不能解决问题呀!
      

  7.   

    假设先画图片,在图片上画几何图形,我采用memdc方式先把图片画出来,显示到dc上然后再画几何图形,画好了再用bitblt,最后一个参数用srcand来显示到目的dc上
      

  8.   

    InvalidateRect(rect,FALSE);
    FALSE只是不画背景,我的OnEraseBkgnd已返回true了呀
    to:bobob(COM中……)(★★★★★★) 
    这有什么好处呢?