内存DC 双缓存
来源:互联网 发布:access数据库sql查询 编辑:程序博客网 时间:2024/04/30 03:50
该方法用于更好的对图形区域进行操作,同时防止闪烁,具体的操作如下:
首先,声明DC对象,及对应的位图对象,
CDC pDC; //内存DC对象,
CBitmap bmpMem; //位图对象,在内存DC上画图时无法显示的,我们可以在位图对象里画好后,直接内存拷贝到窗口DC上即可
CBitmap *oldBitmap; //绘图备份指针
然后初始化对其进行初始化:
pDC.CreateCompatibleDC(GetDC()); //创建内存DC,此时在该DC中画图操作还无法显示到界面上,需要有一个位图对象与之对应,
bmpMem.CreateCompatibleBitmap(GetDC(),200,200); //
//现在我们队pDC的所有操作,都直接影响到位图对象bmpMem;填充背景操作为:CRect rect = CRect(0,0,200,200);pDC.FillSolidRect(&rect,RGB(160,0,160));
到目前为止,我们可以对其进行画图操作,在画完图,进行内存拷贝即可
LOGBRUSH logBrushPrompt;
logBrushPrompt.lbStyle = BS_SOLID;
logBrushPrompt.lbColor = RGB(0,0,0);
CPen myPenPrompt2(PS_DOT|PS_GEOMETRIC|PS_ENDCAP_ROUND,3, &logBrushPrompt);
oldBitmap = pDC.SelectObject(&bmpMem);
CRect rect(0,0,200,200);
pDC.FillSolidRect(&rect,RGB(255,0,0));
pDCt->TextOutW(500,500,_T("nonononfo"));
pDC.SelectObject(&myPenPrompt2);
pDC.MoveTo(200,0);
pDC.LineTo(0,200);
//内存拷贝
GetDC()->BitBlt(0, 0, 200, 200, &pDC, 0, 0, SRCCOPY);
//还原系统绘图指针
pDC.SelectObject(oldBitmap);
到目前为止,画图及显示全部完成。
注:DeleteDC()释放相应的DC.
- 内存DC 双缓存
- 缓存DC
- 关于内存DC绘图防止屏幕闪烁说明(亦即双缓存技术) .
- 内存DC
- 内存DC
- 内存DC
- 内存DC
- 内存DC和屏幕DC
- 内存DC和屏幕DC
- 内存DC和屏幕DC
- 内存DC拷贝到内存DC
- 兼容DC双缓存绘制(可以滚动视)
- 内存兼容DC
- Windows 内存DC
- 关于内存DC
- MIniGui 内存DC绘图
- MFC 透明内存DC
- mfc 内存dc
- Redis监控数据分布工具Redis-audit 使用总结
- block介绍(三)揭开神秘面纱(上)
- GPS知识
- java调用计算机显示文档
- Java多线程总结
- 内存DC 双缓存
- C++拷贝构造函数(深拷贝,浅拷贝)
- 【Linux】CentOS5.5系统定制
- XML - 高级
- c语言实现队列结构操作的宏定义
- http://acm.hdu.edu.cn/showproblem.php?pid=1863
- block介绍(四)揭开神秘面纱(下)
- 将txt文本数据导入到Oracle数据库中去
- ubuntu12.04 64建立交叉编译环境,bin/.arm-none-linux-gnueabi-gcc: not found(安装 ia32-libs)