GDI+混合GDI实现双缓存

作者: admin 分类: win32 发布时间: 2013-10-14 18:31 ė4,255 浏览数 6没有评论
文章转自王牌软件
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)

双缓存就是在内存中准备一块区域,把要显示的内容都绘制到准备的内存区域中,绘制完成之后就可以调用BitBlt函数,把内存区域的内容复制到显示设备上,这样就可以防止闪屏了.
在是使用GDI绘制客户区域时,可以使用下面的这样的代码

 

上面就是在GDI使用双缓存机制绘制的操作,而在GDI+中,可以像下面的步骤一样使用双缓存:
在内存中建立一块“虚拟画布”:Bitmap bmp = new Bitmap(600, 600);
获取这块内存画布的Graphics引用:Graphics g = Graphics.FromImage(bmp);
在这块内存画布上绘图:g.FillEllipse(brush, i * 10, j * 10, 10, 10);
将内存画布画到窗口中:this.CreateGraphics().DrawImage(bmp, 0, 0);
但是GDI+ 的双缓冲效果很差, 使用的是临时位图来实现的.效果并没有GDI中的那么好。所以可以结合GDI双缓存方面的优势和GDI+绘制图形方面的便利,在GDI双缓存中使用GDI+来绘图。

上面就是使用了双缓存,并且用GDI+来在客户端绘制一张png图片。



只回答业务咨询点击这里给我发消息 点击这里给我发消息

学习日记,兼职软件设计,软件修改,毕业设计。

本文出自 学习日记,转载时请注明出处及相应链接。

本文永久链接: https://www.softwareace.cn/?p=606

0

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">


Ɣ回顶部

无觅相关文章插件,快速提升流量