双缓冲绘图问题

liyunsheng2016 2016-09-08 04:50:58
大神们,请帮下小弟
void CSleepDlg::OnPaint()
{

CPaintDC dc(this);
CRect rect;
CDC memDC;
CBitmap MemBitmap,*pOldBmp;
GetClientRect(&rect); //获取客户端区域大小
memDC.CreateCompatibleDC(&dc);//建立与屏幕显示兼容的内存显示设备

MemBitmap.CreateCompatibleBitmap(&dc,rect.Width(),rect.Height());
pOldBmp = memDC.SelectObject(&MemBitmap);
OnDraw(&memDC) ;
OnDraw3Btn(&memDC);
OnDrawBlank(&memDC);
dc.BitBlt(rect.left,rect.top,rect.Width(),rect.Height(),&memDC,0,0,SRCCOPY);
memDC.SelectObject(pOldBmp);
MemBitmap.DeleteObject();
}
用CPaintDC dc(this);无法双缓冲,还是闪啊,大神们有碰到这种情况没
...全文
123 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
liyunsheng2016 2016-09-09
  • 打赏
  • 举报
回复
结贴了。谢谢楼上
schlafenhamster 2016-09-08
  • 打赏
  • 举报
回复
擦除背景 return TRUE; BOOL CxxxxDlg::OnEraseBkgnd(CDC* pDC) { // TODO: Add your message handler code here and/or call default return TRUE; // return CDialog::OnEraseBkgnd(pDC); }

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧