[MFC]OnPaint双缓冲绘图

来源:互联网 发布:外贸英语书籍推荐 知乎 编辑:程序博客网 时间:2024/05/30 05:21
void CXButton::OnPaint(){CRect PaintRect;CPaintDC dc(this);CDC MemDC;CBitmap MemBitmap;// 双缓冲绘图GetClientRect(PaintRect);if (MemDC.CreateCompatibleDC(&dc)){if (MemBitmap.CreateCompatibleBitmap(&dc, PaintRect.Width(), PaintRect.Height())){if (HGDIOBJ OldObject = MemDC.SelectObject(MemBitmap)){// 拷贝背景图, 以处理透明色if (MemDC.BitBlt(0, 0, PaintRect.Width(), PaintRect.Height(), &dc, 0, 0, SRCCOPY)){Gdiplus::Graphics g(MemDC);// Paint here ...dc.BitBlt(0, 0, PaintRect.Width(), PaintRect.Height(), &MemDC, 0, 0, SRCCOPY);}MemDC.SelectObject(OldObject);}MemBitmap.DeleteObject();}MemDC.DeleteDC();}}

0 0
原创粉丝点击