多视图程序如何保存各视图显示内容到内存,而在OnPaint函数中不再重复绘图,只是恢复。 做了一个多视图的文件,每个视图都是较为复杂的绘图。但是遇到一个问题,由于绘图函数在onpaint中,若频繁刷新调用onpaint函数,则cpu的使用率非常高。刷新时没有新的绘图,只是恢复先前的显示。能不能将试图内的显示点阵当做位图内容存到内存,刷新时直接回复显示内存,这样可以避免重复繁琐的绘图,降低cpu使用。高手关注! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是非常常用的作法,视图要显示的东西,先在BMP上面画,然后,贴出来,如果有数据改动,再重画BMP。这样做不仅仅能提高效率,如果再处理的好的话,还能减少闪烁!你可以在网上收双缓冲画图!不过,如果你还有中间绘图信息的话,建议再加一个BMP2,具体这样:数据改动的时候,重画BMP,如果中间数据改动的时候(可能是比较频繁的小数据,比如选择、拖动什么的),重画BMP2(重画的过程,就是先将BMP拷贝到BMP2,然后在这个基础上,在BMP2上重画中间数据);显示的时候,直接将BMP2数据显示出来!这样做,极大的提高了绘图效率,处理好的话基本没有什么闪烁。 添加一个CDC的成员变量m_pMemoryDC;在OnPaint中判断m_pMemoryDC是否为NULL。如果是,new CDC,然后m_pMemoryDC->CreateCompatibleDC再将把有的图都绘到m_pMemoryDC上。最后把m_pMemoryDC考贝到CPaintDC上。如果m_pMemoryDC不为NULL,直接把m_pMemoryDC拷贝到PaintDC也就是所谓的双缓存。 VC下,通过socket,接收显示多张图片的问题 只求高手帮忙解答!(路过,灌水,菜鸟请别留言)在线等。。 如何从文件中定位读取数据 如何实现模拟登录网站发信? Evc安装后的SDK切换就死机问题 用过appface的大哥大姐请进来指导一下! 50分!哪个达人帮我看看这是怎么回事 ddraw绘图 出现问题 一个ActiveX插件实现截屏功能,嵌入到网页的时调用其方法运行时有时出现花屏的问题,请高手不吝指教! 大家觉得中国的软件业不如印度的原因是什么?是没有人才吗?还是程序员待遇不够? DPI 设置 ,界面混乱 请问如何才能用一个win32项目 制作一个只显示已个进度条控件的效果?
你可以在网上收双缓冲画图!
不过,如果你还有中间绘图信息的话,建议再加一个BMP2,具体这样:数据改动的时候,重画BMP,如果中间数据改动的时候(可能是比较频繁的小数据,比如选择、拖动什么的),重画BMP2(重画的过程,就是先将BMP拷贝到BMP2,然后在这个基础上,在BMP2上重画中间数据);显示的时候,直接将BMP2数据显示出来!
这样做,极大的提高了绘图效率,处理好的话基本没有什么闪烁。
再将把有的图都绘到m_pMemoryDC上。最后把m_pMemoryDC考贝到CPaintDC上。
如果m_pMemoryDC不为NULL,直接把m_pMemoryDC拷贝到PaintDC也就是所谓的双缓存。