MFC 画图CDC双缓冲

void CPCBGUIView::OnDraw(CDC* pDC)
{
 //CPCBGUIDoc* pDoc = GetDocument();
 //ASSERT_VALID(pDoc);
 //if (!pDoc)
 // return;

 CDC m_pMemDC;
 CBitmap m_pBitmap;

 CRect rect;
 GetClientRect(rect);

 int x=rect.Width();
 int y=rect.Height();

 m_pMemDC.CreateCompatibleDC(pDC);
 m_pBitmap.CreateCompatibleBitmap(pDC,x,y);
 m_pMemDC.SelectObject(m_pBitmap);

 pDC->SetMapMode(MM_ANISOTROPIC);//自定义方式 x向右增加 y向上增加
 pDC->SetWindowExt(x,y);
 pDC->SetViewportExt(x,-y);
 pDC->SetWindowOrg(0,y);

 m_pMemDC.SetMapMode(MM_ANISOTROPIC);
 m_pMemDC.SetWindowExt(x,y);
 m_pMemDC.SetViewportExt(x,-y);
 m_pMemDC.SetWindowOrg(0,y);

 m_pMemDC.FillSolidRect(0,0,x,y,RGB(255,255,255));//清屏
 
 CPCBDrawer::GetPCBDrawer()->Draw(pDC, &m_pMemDC,rect);//画图

 pDC->BitBlt(0,0,x,y, &m_pMemDC,0,0,SRCCOPY);//贴图

 m_pBitmap.DeleteObject();
 m_pMemDC.DeleteDC();

}

posted @   海乐学习  阅读(2955)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2011-06-01 table 在网页无法顶到头部问题
点击右上角即可分享
微信分享提示