三缓冲

BOOL Cmfc_GDIDlg::OnEraseBkgnd(CDC* pDC)
{
    // TODO: Add your message handler code here and/or call default
//两个兼容DC
CDC MemDC1;
CDC MemDC2;
MemDC1.CreateCompatibleDC(NULL);
MemDC2.CreateCompatibleDC(NULL);
//加载位图
CBitmap bitmap;
BITMAP BMInfo;
bitmap.LoadBitmapW(IDB_BITMAP1);
bitmap.GetBitmap(&BMInfo);
//窗口大小
CRect rect;
GetClientRect(rect);
MemDC1.SelectObject(&bitmap);
//缩放到第二内存DC
CBitmap Membitmap;
Membitmap.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());
MemDC2.SelectObject(&Membitmap);
MemDC2.StretchBlt(0,0,rect.Width(),rect.Height(),&MemDC1,0,0,BMInfo.bmWidth ,BMInfo.bmHeight,SRCCOPY);
MemDC2.TextOutW(0,0,L"我是固定文本");
//最后在屏幕显示再来
//pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&MemDC2,0,0,BMInfo.bmWidth ,BMInfo.bmHeight,SRCCOPY);
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&MemDC2,0,0,SRCCOPY);
pDC->TextOutW(100,100,L"时间显示");
bitmap.DeleteObject();
MemDC1.DeleteDC();
MemDC2.DeleteDC();
return true;
//return CDialog::On
posted @ 2013-09-29 17:15  友琼  阅读(241)  评论(0编辑  收藏  举报