2 lanxinwoaini lanxinwoaini 于 2016.03.25 14:36 提问

MFC中图像无法使用双缓冲拷贝

我接手了别人的程序,需要使用双缓冲绘图,程序中定义的内存对象pDC可以绘制任何曲线,绘制完毕后复制给窗体。但是内存对象pDC就不能进行BitBlt操作,哪怕是自身平移拷贝自身都不可以。pDC->BitBlt(0, 0, rect.Width(), rect.Height(),pDC, 10, 10, SRCCOPY);不知道是pDC哪里设置有了问题?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
MFC基础知识(四)——双缓冲解决刷屏时闪烁
本文主要介绍:在利用MFC画图或图像显示时,有时候需要调用OnDraw()函数刷新屏幕,而屏幕往往会发生闪烁,本文主要介绍利用双缓冲解决闪屏问题。 关于闪屏方面的介绍分析见博文: http://blog.csdn.net/longzaitianya1989/article/details/18266899 博文中关于双缓冲实现部分不够详尽,实现过程中可能会出现问题,下面再介绍一下: 1
MFC单文档程序 双缓冲绘图
今天在做一个例子的时候,faxi
MFC双缓冲绘图实例
大家都知道包括windows桌面在内我们看到的一切都是系统画上去的,windows桌面就相当于一个黑板;   1.普通绘图就是直接在我们看得到的黑板上绘图 2.双缓冲就是先在一个虚拟的黑板上画完,等用到的时候在把虚拟黑板上的图画复制到我们看得到的黑板上去;   利用双缓冲的优点就是能够使画面流畅,可以想象把画好的图直接粘贴到黑板上一定比在黑板上重新画要快的多。      ———
MFC笔记:GDI+贴图、双缓冲绘图、向屏幕上输出文字
CImage类是一个非常有用的类,利用它可以非常简单地shixian
利用双缓冲技术解决图像闪烁
我们看电视时,看到的屏幕称为OSD层,也就是说,只有在OSD层上显示图像我们才能看到。现在,我需要创建一个虚拟的、看不见但是可以在上面画图(比如说画点、线)的OSD层,我称之为offscreen(后台缓冲区)。这个offscreen存在于内存中,我们在上面画图,这个offscreen上面的东西可以显示在OSD层上,需要一个创建这个offscreen的函数,返回这个offscreen的句柄(整型指针
mfc 利用CImage类解决多个PNG多次叠加的闪烁问题
CImage类可以加载BMP、PNG等格式,遇到一般的闪烁问题,大多数是直接采用换双冲问题;但是对于多次快速加载叠加的PNG图片时(如子绘滑块),采用双缓冲技术仍然是有闪烁现象。这时需要将图片都加载到同一个内存DC中,然后再把内存DC刷新到设备DC中,这样,不管刷新多么频繁,都不会出现闪烁的现象。 CBitmap bitmap; BITMAP bmap,bmaps; CDC mem
[MFC]OnPaint双缓冲绘图
void CXButton::OnPaint() { CRect PaintRect; CPaintDC dc(this); CDC MemDC; CBitmap MemBitmap; // 双缓冲绘图 GetClientRect(PaintRect); if (MemDC.CreateCompatibleDC(&dc)) { if (MemBitmap.CreateComp
MFC 双缓冲图形刷新
转自: http://wenku.baidu.com/view/55cdb606a6c30c2259019ed2.html 绘图时屏幕闪烁的原因分析 很长一段时间我一直认为绘图过程中出现的屏幕闪烁是图形刷新速度过快而造成的(相信有很多朋友也跟我一样有这样的想法),但是通过编写一些绘图程序,我发现事情并非如此,至少刷新速度快不会是造成屏幕闪烁的根本原因。这个问题可以通过下面的两个试验进行说明。
MFC_双缓冲技术
双缓冲技术
mfc双缓存技术+滚动条的画图问题
转自:http://blog.csdn.net/ke_yang/article/details/5417643 VC中的绘图有个比较棘手的问题是闪烁,双缓存是解决此类问题的一种方法,但是在系统绘图中,由于可能要加载滚动条,响应鼠标拖动等事件,导致传统的双缓存方法不一定适用,本文提出了一种解决方法能够用统一的框架内实现滚动条,鼠标图型拖动,视口转换以及双缓存绘图. 关键字:双缓存,滚动条,鼠标拖