例1:
//全局变量
CDC MemDC;
CBitmap MemBitmap;
CBitmap *pOldBit;
//在int CMYView::OnCreate(LPCREATESTRUCT lpCreateStruct) 加
MemDC.CreateCompatibleDC(NULL);
MemBitmap.CreateCompatibleBitmap(pDC,200,200);
pOldBit=MemDC.SelectObject(&MemBitmap);
//在void CMYew::OnDraw(CDC* pDC)加
pDC->BitBlt(0,0,200,200,&MemDC,0,0,SRCCOPY);
要画的时候都用MemDC来画,画好了,Invalidate();一下就可能以
例2:
在OnTimer函数中这样写:
OnTimer()
{
CTime time = CTime::GetCurrentTime();
CString str;
str = time.Format("%H:%M:%S");//得到当前时间,当然你可以用增加的方法,不用每次得到
HDC hdc = ::GetDC( GetDlgItem(IDC_STATIC_X)->m_hWnd );
CDC * pDC = CDC::FromHandle(hdc); //获得CStatic的DC
CDC mdc;
mdc.CreateCompatibleDC(pDC); //创建兼容的内存DC
CBitmap bitmap; //创建兼容的内存位图
bitmap.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());
CBitmap * pold = mdc.SelectObject(&bitmap); //选入位图,你将在这个位图上画上时间
pDC->SetTextColor( RGB(0,0,0) ); //设置时间的背景色
pDC->SetBkColor( RGB(255,255,255)); //设置时间的文字颜色
CRect rect;
::GetClientRect(handle,&rect); //获得区域
mdc.DrawText(str,&rect,DT_CENTER | DT_VCENTER); //把时间画在位图上
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&mdc,0,0,SRCCOPY); //显示时间