| 发表于:2007-07-03 09:15:20 楼主 |
我对整个绘图的过程还是有点迷糊。 基于document/view,我的绘图函数放在view类的ondraw()函数里,画方波,数据量很大,实现波形的左右移动和放大缩小。 左右移动是通过滚动条来实现的,放大缩小是自己写的两个按钮,在缩放的消息响应函数里改变窗口大小与视口大小的比例,再调用invalidrect()使触发wm_paint消息调用ondraw()函数,使图形重绘。 问题来了,在调用invalidrect()之前,我获得了无效矩形区域,重绘应该只绘制该无效矩形区域内的图形,但是,invalidrect()导致调用ondraw函数,我的绘图函数就放在ondraw里,等于说每次 重绘都是把所有图形再绘制一遍,由于波形的 数据量很大,每次都重新绘制,时间根本 无法忍受,怎么解决这个问题呢? invalidrect()只重会无效矩形区,是怎么个绘制法呢,怎么个机制呢?我晕了 那位达人帮帮忙,想来 学习的大家也一起讨论 |
|
|
|
|