用双缓存绘制方法减少绘图时的闪屏

原创 2007年10月05日 18:40:00

CClientDC dc(this);

CRect rClient;
GetClientRect(&rClient);

CBitmap MemBmp;
MemBmp.CreateCompatibleBitmap(&dc, rClient.Width(), rClient.Height());

CDC MemDC;
MemDC.CreateCompatibleDC(NULL);
CBitmap* pOldMemBmp = MemDC.SelectObject(&MemBmp);

CDC bmpDC;
bmpDC.CreateCompatibleDC(&dc);

CBitmap* pOldBitmap = bmpDC.SelectObject(CBitmap::FromHandle(m_hBgBmp));
MemDC.BitBlt(rClient.left, rClient.top, m_SizeBg.cx, m_SizeBg.cy, &bmpDC, 0, 0, SRCCOPY);
bmpDC.SelectObject(pOldBitmap);
pOldBitmap = NULL;

CString sText = "……";
CFont font;
LOGFONT lf;
memset(&lf, 0, sizeof(LOGFONT));
lf.lfHeight = 14;
lf.lfWeight = FW_BOLD;
strcpy_s(lf.lfFaceName, LF_FACESIZE, "宋体");
font.CreateFontIndirect(&lf);
CFont* pOldFont = MemDC.SelectObject(&font);
MemDC.SetBkMode(TRANSPARENT);
MemDC.SetTextColor(RGB(255, 255, 255));
MemDC.TextOut(12, 8, sText);
MemDC.SelectObject(pOldFont);
font.DeleteObject();
DeleteDC(bmpDC);

dc.BitBlt(rClient.left, rClient.top, rClient.Width(), rClient.Height(), &MemDC, 0, 0, SRCCOPY);

MemDC.SelectObject(pOldMemBmp);
MemDC.DeleteDC();
MemBmp.DeleteObject(); 

 
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

VC 双缓存绘图 闪屏

********************所有的GDI绘图函数使用的都是逻辑坐标(逻辑范围)******************* *******************系统默认情况下 物理范围和逻辑...

MFC 双缓存绘图

在SDI应用程序中,当我们需要shike

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

双缓存绘图(2)

//构造函数中:加载图片 CString strImagePath = CfgInst.GetAppPath() + IMAGE_PATH; _bstr_t bstr(strImagePath); ...

双缓冲绘图--mfc实时绘制相机灰度图

老板的项目,要从相机中读取图像,并实时显示。 实时显示最大的问题应该就是图像闪烁了。我第一次做时直接用cdc一个点一个点的填,刷出来的图闪的厉害。图像闪烁的原因很简单,因为每次窗体刷新都要擦去原来的...

双缓冲绘图

双缓冲绘图普通绘图 普通绘图:每次绘制直接在目标窗口进行绘制 而大量的绘制操作是需要时间的,所以会造成不停的闪。 双缓存绘图 双缓冲绘图:先创建一块内存,直接对内存操作 ...

双缓冲绘图

CRect rc; // 定义一个矩形区域变量 GetClientRect(rc); int nWidth = rc.Width(); int nHeight = r...

双缓冲绘图

在VC/MFC用CDC绘图时,频繁的刷新,屏幕会出现闪烁的现象,CPU时间占用率相当高,绘图效率极低,很容易出现程序崩溃。         所谓双缓冲技术,下面是百度百科的解释:     &...

双缓冲绘图

转自:http://www.moon-soft.com/doc/12115.htm1.用双缓冲解决画板程序中的刷新问题         我们用Java编制画板程序的时候,总是存在一个刷新的问题:当Ca...
  • cc_lq
  • cc_lq
  • 2011-07-19 21:03
  • 522

双缓冲绘图

双缓冲绘图           用vc做的画图程序,当所画的图形大于屏幕时,当拖动滚动条时屏幕就会出现严重的闪烁情况,为了解决这一问题就得使用双缓冲来解决这一问题,程序产生严重的闪烁问题是因为画图...

双缓冲绘图

原文地址:http://blog.csdn.net/blogercn/article/details/7404485 对其代码做了一些修改,把刷新间隔由100ms改为了10ms,使得在真机上能看到分...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)