我使用双缓冲显示一张DIB位图,2000 * 600的,先用StretchDIBits将客户区内的点写到内存DC上,然后在鼠标所在位置画一个十字架宽和高分别是客户区的宽和高,最后再用BitBlt将内存DC拷贝当前DC上,鼠标每移动一次就刷新一次,在我的电脑上一切正常,鼠标移动和画图都很平滑,但换了一台机器,老古董了,就出现了延时,当鼠标移动时,十字架就跟鼠标分离了,放大缩小也出现了延时,客户那边的一台机,我问他什么配置,到现在还没回应,这个是哪里出问题了呢,请赐教

解决方案 »

  1.   

    如果十字架占用的矩形比较小,也能做些优化。整个背景图片放入缓存的内存DC,并且背景在WM_ERASEBKGND中绘制(如果图片没变化,可以不绘制,以提高效率),十字架在WM_PAINT中绘制,仅仅重绘十字架占用的矩形区域,也就是BitBlt时选择合适的区域,不要整个矩形操作。
      

  2.   

    那台机的配置还可以啊,2.06的CPU,256M的内存,64M的显存,我这里有一台机2.13的CPU,128M的内存,32M的显存,运行起来都很顺畅,我不画十字架,在他那台机上还是老问题,搞得我郁闷,另外我还画了网格,把每个点隔开,就是说ONDRAW里有三步操作:
    1、StretchDIBits    画点
    2、DrawGrid         画网格
    3、BitBlt           显示多余的东西都去掉了,还是老样子