可以采用这种技术(暂且称之为CDC缓冲):用一个memory CDC,在其中绘制背景和除当前选中bezier曲线外的所有曲线。当你移动选中曲线时,计算最小更新矩形,然后从以上CDC上拷贝该矩形中的图像,最后再把选中曲线绘制一下就可以了。这种技术中要注意两点:1、选中曲线改变时,需要更新上述memory CDC;2、更新矩形要尽量小,以求得最快的速度。必要时还可以用更新若干小矩形的办法,比如一根长的斜线。
另外,必要时还可以对背景位图再作一级CDC缓冲。
祝成功顺利。
另外,必要时还可以对背景位图再作一级CDC缓冲。
祝成功顺利。
解决方案 »
- windows服务程序调用printer打印程序 无法启动打印任务,何解?
- 进来讨论下,使用GetBuffer后,没有调用ReleaseBuffer前?
- 请问怎么在MFC程序里面操作Discuz论坛,如添加用户,发贴等
- 请问如何在d3d窗口显示文字
- 我想写个多线程的扫端口程序(开上千线程那种),请问用哪个函数好??
- 怎样时刻保护IE首页地址栏不被篡改?
- VS2003不能建立Visual C++项目
- 谁能告诉我9针串口线各针的颜色?
- 有关vc中图像输出的问题,知道的哥们请进!
- device driver API 问题
- 如何在我的应用程序中使用file manage的树型目录和列表。
- fatal error C1004: unexpected end of file found这是啥错误呀!
注意的第一点:选中曲线改变时,需要更新上述memory CDC;
问题是:假设有100条曲线,1,2,3,...100.先选中曲线1,这时memdc 中是背景和 曲线
2,...100.曲线1改变后,更新memdc.不妨记这时memdc 的状态为status1,that's ok.
后来选中曲线2,这时memdc 中应该是背景和 曲线1,3...100.记这时memdc 的状态为status2.如何从status1 变到status2,是不是在背景上重画曲线1,3...100.这样效率
不高吧?
欢迎继续讨论.