C++ | 双缓存的使用

简介: 双缓存在paint中很重要。

1、定义内存DC: CDC memDC;
2、定义位图资源: CBitmap bitmap;
3、创建内存DC: memDC.CreateCompatibleDC(&dc);
4、创建位图资源: bitmap.CreateCompatibleBitmap(&dc, rect.Width(), rect.Height());
5、选择位图资源: CBitmap *pOldBitmap = memDC.SelectObject(&bitmap);
6、双缓存输出到屏幕: dc.BitBlt(0, 0, rect.Width(),rect.Height(),&memDC, 0, 0, SRCCOPY);
7、恢复位图资源: memDC.SelectObject(pOldBitmap);
8、释放资源: bitmap.DeleteObject();memDC.DeleteDC();ReleaseDC(&memDC);
根据自己的需要可以定义为成员变量,也可以在OnPaint()中使用临时变量。

目录
相关文章
|
5月前
|
存储 缓存 算法
【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能
【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能
818 0
|
3月前
|
存储 缓存 程序员
C++一分钟之-缓存行与伪共享问题
【7月更文挑战第11天】在计算机科学中,缓存是一个至关重要的概念,它能够显著提高数据访问速度。然而,缓存的使用并非没有问题,其中最著名的问题之一就是伪共享。
34 1
|
4月前
|
缓存 网络协议 算法
c++理论篇(一) ——浅谈tcp缓存与tcp的分包与粘包
c++理论篇(一) ——浅谈tcp缓存与tcp的分包与粘包
111 0
c++理论篇(一) ——浅谈tcp缓存与tcp的分包与粘包
|
5月前
|
存储 缓存 负载均衡
基于C++的高性能分布式缓存系统设计
基于C++的高性能分布式缓存系统设计
172 1
|
缓存 Java Android开发
Android C++ 系列:JNI 调用时缓存字段和方法 ID
通常我们通过 FindClass 、GetFieldID、GetMethodID 去找到对应的信息也是耗时操作,如果方法被频繁调用(特别是像音视频处理时循环的调用JNI方法传递音视频数据),每次都去查找对应的类和方法ID会很耗性能,所以我们必须将它们缓存起来,达到只创建一次,后面直接使用缓存内容的效果。
142 0
|
机器学习/深度学习 缓存 算法
C++中的数组array和vector,lambda表达式,C字符串加操作,C++中新类型数组(数组缓存),多元数组,new缓冲
 使用C++风格的数组,不需要管理内存。 array要注意不要溢出,因为它是栈上开辟内存. array适用于任何类型 #include<iostream> #include<array> #include<vector>   //C++的标准库 #include<string
1407 0
|
5天前
|
存储 编译器 对象存储
【C++打怪之路Lv5】-- 类和对象(下)
【C++打怪之路Lv5】-- 类和对象(下)
15 4
|
5天前
|
编译器 C语言 C++
【C++打怪之路Lv4】-- 类和对象(中)
【C++打怪之路Lv4】-- 类和对象(中)
15 4
|
5天前
|
存储 安全 C++
【C++打怪之路Lv8】-- string类
【C++打怪之路Lv8】-- string类
10 1