vc 双缓冲绘图 - wrhwww - c++博客

vc 双缓冲绘图 - wrhwww - c++博客

ID:9213152

大小:373.00 KB

页数:5页

时间:2018-04-23

vc 双缓冲绘图 - wrhwww - c++博客_第1页
vc 双缓冲绘图 - wrhwww - c++博客_第2页
vc 双缓冲绘图 - wrhwww - c++博客_第3页
vc 双缓冲绘图 - wrhwww - c++博客_第4页
vc 双缓冲绘图 - wrhwww - c++博客_第5页
资源描述:

《vc 双缓冲绘图 - wrhwww - c++博客》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、wrhwwwVC双缓冲绘图导航C++博客在图形图象处理编程过程中,双缓冲是一种基本的技术。我们知道,如果窗体在响首页应WM_PAINT消息的时候要进行复杂的图形处理,那么窗体在重绘时由于过频的刷新随笔联系新而引起闪烁现象。解决这一问题的有效方法就是双缓冲技术。聚合管理因为窗体在刷新时,总要有一个擦除原来图象的过程OnEraseBkgnd,它利用背景色填充窗体绘图区,然后在调用新的绘图代码进行重绘,这样一擦一写造成了<2011年3月>图象颜色的反差。当WM_PAINT的响应很频繁的时候,这种反差也就越发明

2、显。于日一二三四五六是我们就看到了闪烁现象。2728123456789101112我们会很自然的想到,避免背景色的填充是最直接的办法。但是那样的话,窗体13141516171819上会变的一团糟。因为每次绘制图象的时候都没有将原来的图象清除,造成了图象20212223242526的残留,于是窗体重绘时,画面往往会变的乱七八糟。所以单纯的禁止背景重绘是272829303112不够的。我们还要进行重新绘图,但要求速度很快,于是我们想到了使用BitBlt函3456789数。它可以支持图形块的复制,速度很快。我

3、们可以先在内存中作图,然后用此函数将做好的图复制到前台,同时禁止背景刷新,这样就消除了闪烁。以上也就是双统计缓冲绘图的基本的思路。随笔-240文章-11一、普通方法:评论-51引用-0先按普通做图的方法进行编程。即在视类的OnDraw函数中添加绘图代码。在此我们绘制若干同心圆,代码如下:常用链接我的随笔CBCDoc*pDoc=GetDocument();我的评论我参与的随笔ASSERT_VALID(pDoc);留言簿(15)CPointptCenter;给我留言CRectrect,ellipseRect

4、;查看公开留言查看私人留言GetClientRect(&rect);随笔档案ptCenter=rect.CenterPoint();2013年3月(1)2013年2月(1)for(inti=20;i>0;i--)2012年7月(1)2012年4月(1){2012年1月(2)2011年10月(1)ellipseRect.SetRect(ptCenter,ptCenter);2011年8月(7)2011年5月(4)ellipseRect.InflateRect(i*10,i*10);2011年4月(1)20

5、11年3月(7)pDC->Ellipse(ellipseRect);2011年2月(2)2011年1月(4)}2010年12月(16)2010年11月(23)2010年10月(20)编译运行程序,尝试改变窗口大小,可以发现闪烁现象。2010年9月(1)2010年8月(8)二、双缓冲方法:2010年7月(9)2010年5月(5)在双缓冲方法中,首先要做的是屏蔽背景刷新。背景刷新其实是在响应2010年4月(5)2010年2月(11)WM_ERASEBKGND消息。我们在视类中添加对这个消息的响应,可以看到缺

6、省的代码如下:2010年1月(1)2009年11月(2)BOOLCMYView::OnEraseBkgnd(CDC*pDC)2009年10月(1)2009年7月(1){2009年6月(16)2009年5月(10)returnCView::OnEraseBkgnd(pDC);2009年4月(2)2009年3月(4)}2009年2月(8)2008年12月(5)2008年11月(4)2008年10月(5)是调用父类的OnEraseBkgnd函数,我们屏蔽此调用,只须直接return2008年9月(12)TRU

7、E;即可。2008年6月(1)2008年5月(12)下面是内存缓冲作图的步骤。2008年4月(26)CPointptCenter;文章档案CRectrect,ellipseRect;2010年5月(1)2008年4月(10)GetClientRect(&rect);收藏夹ptCenter=rect.CenterPoint();好的BLOG(rss)好的BLOG(rss)CDCdcMem;//用于缓冲作图的内存DCCBitmapbmp;//内存中承载临时图象的位图搜索搜索dcMem.CreateCompa

8、tibleDC(pDC);//依附窗口DC创建兼容内存DCbmp.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());//最新评论创建兼容位图1.re:地基沉降自动生成Word分析报告系统dcMem.SelectObject(&bmp);//将位图选择进内存DC你好,博主,我是做工程检测设备的开发人员,您博文说的系统真的很实用,//按原来背景填充客户区,不然会是黑色是否可以借鉴一下代

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。