GDI+学习及代码总结之——GDI+双缓冲等问题总结.docx

上传人:A*** 文档编号:142725268 上传时间:2020-08-22 格式:DOCX 页数:2 大小:11.40KB
返回 下载 相关 举报
GDI+学习及代码总结之——GDI+双缓冲等问题总结.docx_第1页
第1页 / 共2页
GDI+学习及代码总结之——GDI+双缓冲等问题总结.docx_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《GDI+学习及代码总结之——GDI+双缓冲等问题总结.docx》由会员分享,可在线阅读,更多相关《GDI+学习及代码总结之——GDI+双缓冲等问题总结.docx(2页珍藏版)》请在金锄头文库上搜索。

1、GDI+学习及代码总结之GDI+双缓冲等问题总结GDI+双缓冲技术转载地址:http:/ 如何使用双缓冲绘制图像),得到了一个GDI+下较可行的方法,虽然绘制效果比直接绘制要好一些,不过还不能跟GDI的双缓冲方式比肩。现在,我终于找到了一个理想的实现方式,效果与GDI的实现不相上下,代码如下:/*C+ code*/RECT rc;GetClientRect(g_hwnd,&rc);Bitmap bmp(int(rc.right),int(rc.bottom);Graphics bmpGraphics(&bmp);bmpGraphics.SetSmoothingMode(SmoothingMod

2、eAntiAlias);/*Drawing on bitmap*/SolidBrush bkBrush(Color(0,0,0);bmpGraphics.FillRectangle(&bkBrush,0,0,rc.right,rc.bottom);/*Drawing on DC*/Graphics graphics(hdc);/*Important! Create a CacheBitmap object for quick drawing*/CachedBitmap cachedBmp(&bmp,&graphics);graphics.DrawCachedBitmap(&cachedBmp,

3、0,0);以上的绘制代码最区别于网络上其他GDI+实现的一处就是,在最后添加了一个CacheBitmap对象用于快速绘制。CacheBitmap是一个包含了bmp全部象素,并且针对graphics所关联的DC做过特别优化的位图对象。这点可以从其构造参数上看到。关于双缓冲的实现还有一点十分关键,虽然它不属于双缓冲实现的核心。如果绘制需要经常的重绘背景,则需要自己拦截WM_ERASEBKGND消息,并在处理函数中什么也不做,即此消息发生时不重画背景,背景的重画在WM_PAINT中全权控制。如,WM_ERASEBKGND消息处理的实现void OnEraseBkGnd(HDC hdc)/do not

4、hing附:GDI的双缓冲实现RECT rc;GetClientRect(hwnd,&rc);HDC hMemDc = CreateCompatibleDC(hdc);HBITMAP hBmp = CreateCompatibleBitmap(hdc,rc.right,rc.bottom);HBITMAP hOldBmp = (HBITMAP)SelectObject(hMemDc,hBmp);/在此使用hMemDc进行 GDI 绘制BitBlt(hdc,0,0,rc.right,rc.bottom,hMemDc,0,0,SRCCOPY);SelectObject(hMemDc,hOldBmp);DeleteObject(hBmp);DeleteObject(hMemDc);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号