在VIEW中绘制 曲线 , 闪屏有关问题
在VIEW中绘制 曲线 , 闪屏问题
图形是一个点一个点描的. 有几万个, 所以DRAW一次就要调用
DC.MOVETO
DC.LINKETO
几万次.
所以 当滚动视图会觉得好慢
或者刷新时会觉得闪厉害,
不知道该如何来实现?
象PHOTOSHOP中 , 一点都不闪.
另:
实现在VIEW上 当鼠标点下拖动时绘制一个框, 有不用刷新直接在上面画的方法吗?? 如果刷背景也会闪屏.
新手,多指 教.
------解决方案--------------------
在内存中建立一个BITMAP,往这个BITMAP上画,画完后直接把这个BITMAP显示出来。这样就不会闪了
------解决方案--------------------
采用双缓冲进行画图,应该可以解决
------解决方案--------------------
双缓冲,Google一下一大堆源码。
第二个问题,把画刷模式定义为异或,画下一帧之前把前一条线重画一次,就会把背景翻转回来,想当于擦掉原来的线,然后画下一根线。这样就不用刷背景。如果是纯色背景的话还可以简单一些,就是画下一帧之前用背景色把前一条线重画一次,再用前景色画下一条线,道理和异或画刷是一样的
图形是一个点一个点描的. 有几万个, 所以DRAW一次就要调用
DC.MOVETO
DC.LINKETO
几万次.
所以 当滚动视图会觉得好慢
或者刷新时会觉得闪厉害,
不知道该如何来实现?
象PHOTOSHOP中 , 一点都不闪.
另:
实现在VIEW上 当鼠标点下拖动时绘制一个框, 有不用刷新直接在上面画的方法吗?? 如果刷背景也会闪屏.
新手,多指 教.
------解决方案--------------------
在内存中建立一个BITMAP,往这个BITMAP上画,画完后直接把这个BITMAP显示出来。这样就不会闪了
------解决方案--------------------
采用双缓冲进行画图,应该可以解决
------解决方案--------------------
双缓冲,Google一下一大堆源码。
第二个问题,把画刷模式定义为异或,画下一帧之前把前一条线重画一次,就会把背景翻转回来,想当于擦掉原来的线,然后画下一根线。这样就不用刷背景。如果是纯色背景的话还可以简单一些,就是画下一帧之前用背景色把前一条线重画一次,再用前景色画下一条线,道理和异或画刷是一样的