例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); 要畫的時(shí)候都用MemDC來畫,,畫好了,Invalidate();一下就可能以
例2:
在OnTimer函數(shù)中這樣寫:
OnTimer()
{ CTime time = CTime::GetCurrentTime(); CString str;
str = time.Format("%H:%M:%S");//得到當(dāng)前時(shí)間,,當(dāng)然你可以用增加的方法,,不用每次得到 HDC hdc = ::GetDC( GetDlgItem(IDC_STATIC_X)->m_hWnd );
CDC * pDC = CDC::FromHandle(hdc); //獲得CStatic的DC CDC mdc;
mdc.CreateCompatibleDC(pDC); //創(chuàng)建兼容的內(nèi)存DC CBitmap bitmap; //創(chuàng)建兼容的內(nèi)存位圖
bitmap.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height()); CBitmap * pold = mdc.SelectObject(&bitmap); //選入位圖,,你將在這個(gè)位圖上畫上時(shí)間
pDC->SetTextColor( RGB(0,0,0) ); //設(shè)置時(shí)間的背景色
pDC->SetBkColor( RGB(255,255,255)); //設(shè)置時(shí)間的文字顏色 CRect rect;
::GetClientRect(handle,&rect); //獲得區(qū)域 mdc.DrawText(str,&rect,DT_CENTER | DT_VCENTER); //把時(shí)間畫在位圖上
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&mdc,0,0,SRCCOPY); //顯示時(shí)間
|
|