VC GDI双缓冲机制绘图防屏幕闪烁实现步骤
2012-12-07 11:27
190 查看
在OnDraw(CDC* pDC) 中添加如下代码
CDC MemDC; //首先定义一个显示设备对象
CBitmap MemBitmap;//定义一个位图对象
//随后建立与屏幕显示兼容的内存显示设备
MemDC.CreateCompatibleDC(NULL);
//这时还不能绘图,因为没有地方画 ^_^
//下面建立一个与屏幕显示兼容的位图,至于位图的大小嘛,可以用窗口的大小,也可以自己定义(如:有滚动条时就要大于当前窗口的大小,在BitBlt时决定拷贝内存的哪部分到屏幕上)
MemBitmap.CreateCompatibleBitmap(pDC,nWidth,nHeight);
//将位图选入到内存显示设备中
//只有选入了位图的内存显示设备才有地方绘图,画到指定的位图上
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
//先用背景色将位图清除干净,这里我用的是白色作为背景
//你也可以用自己应该用的颜色
MemDC.FillSolidRect(0,0,nWidth,nHeight,RGB(255,255,255));
//绘图
MemDC.MoveTo(……);
MemDC.LineTo(……);
//将内存中的图拷贝到屏幕上进行显示
pDC->BitBlt(0,0,nWidth,nHeight,&MemDC,0,0,SRCCOPY);
//绘图完成后的清理
MemBitmap.DeleteObject();
MemDC.DeleteDC();
CDC MemDC; //首先定义一个显示设备对象
CBitmap MemBitmap;//定义一个位图对象
//随后建立与屏幕显示兼容的内存显示设备
MemDC.CreateCompatibleDC(NULL);
//这时还不能绘图,因为没有地方画 ^_^
//下面建立一个与屏幕显示兼容的位图,至于位图的大小嘛,可以用窗口的大小,也可以自己定义(如:有滚动条时就要大于当前窗口的大小,在BitBlt时决定拷贝内存的哪部分到屏幕上)
MemBitmap.CreateCompatibleBitmap(pDC,nWidth,nHeight);
//将位图选入到内存显示设备中
//只有选入了位图的内存显示设备才有地方绘图,画到指定的位图上
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
//先用背景色将位图清除干净,这里我用的是白色作为背景
//你也可以用自己应该用的颜色
MemDC.FillSolidRect(0,0,nWidth,nHeight,RGB(255,255,255));
//绘图
MemDC.MoveTo(……);
MemDC.LineTo(……);
//将内存中的图拷贝到屏幕上进行显示
pDC->BitBlt(0,0,nWidth,nHeight,&MemDC,0,0,SRCCOPY);
//绘图完成后的清理
MemBitmap.DeleteObject();
MemDC.DeleteDC();
相关文章推荐
- VC GDI双缓冲机制绘图防屏幕闪烁实现步骤
- VC GDI双缓冲机制绘图防屏幕闪烁实现步骤
- VC的内存绘图防止屏幕闪烁技术的实现
- VC的内存绘图防止屏幕闪烁技术的实现
- VC++绘图时,利用双缓冲解决屏幕闪烁 转载
- VC的内存绘图防止屏幕闪烁技术的实现
- 双缓冲解决VC++绘图时屏幕闪烁
- VC++绘图时,利用双缓冲解决屏幕闪烁
- VC++大数据量绘图时无闪烁刷屏技术实现(我的理解是,在内存上作画,然后手动显示,而不再直接需要经过WM_PAINT来处理了)
- VC实现波形不闪烁动态绘图,转载
- 在使用VC进行绘图时,屏幕闪烁问题
- VC: GDI绘图基本步骤总结 .
- VC++大数据量绘图时无闪烁刷屏技术实现
- VC++大数据量绘图时无闪烁刷屏技术实现
- VC使用双缓冲避免绘图闪烁的正确使用方法【转】
- [转]VC: GDI绘图基本步骤总结
- MFC 双缓冲 绘图时屏幕闪烁问题
- 双缓冲技术及其在VC的GDI环境下的实现
- VC绘图防止屏幕闪烁
- VC++大数据量绘图时无闪烁刷屏技术实现