我的view类继承了CScrollView类,视图大小比屏幕要大,因此需要滚动条才能看到下面的内容。因为基本上要在整个视图上花不同颜色的点,所以直接画到屏幕上每次重绘都很慢。所以我试着在内存中开辟了一个同视图一样大的位图(比屏幕要大),在位图中画出那些点,然后用BitBlt函数把内存视图拷贝到屏幕上。但是速度还是很慢。我程序中还有滚动条滚动和鼠标按下的消息响应函数,它们在执行过程中要发生窗口重绘,每次重绘时屏幕都会变白,然后再过三四秒甚至四五秒钟才能出来效果,实在是太慢了。我希望的效果是看不出来重绘.请问该如何解决??
{
return TRUE;
}
个人认为gdi还是可以的,感觉比gdi+强多了(在速度方面),建议楼主还是好好研究下自已的绘制方法及算法
你每次滚动之后把需要画的memdc的坐标位置画到屏幕dc就ok了
你就使用CView就可以了.每次你在View中需要显示什么就绘什么,双缓存是肯定需要的.
主要是每次滚动的时候先计算屏幕的View占整个View的那个区域.然后根据数据重绘这个区域.
之前试过110000*200000的大图,鼠标Move\滚动都丝毫没有问题.其实再大的图道理也一样,应该不会慢到哪里去.
每次画好的部分作为下次画的背景或者移动位置而只重新画新增的部分确实能省N多的时间.如你老板所说.