CDC CClientDC CPen CBrush使用

//創建一個DC畫一條線,然後釋放DC

CDC *pDC = GetDC();
pDC->MoveTo(m_ptOrigin);
pDC->LineTo(point);
ReleaseDC(pDC);

 

//創建一個ClientDC畫一條線,不用釋放DC

CClientDC dc(this);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);

 

//創建一個ClientDC和Pen,畫線,然後還原之前的pen

CClientDC dc(this);

CPen pen(PS_SOLID,10,RGB(0,255,255);
Cpen *pOldPen = dc.SelectObject(&pen);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
dc.SelectObject(pOldPen);

 

//創建一個ClientDC和Brush,畫矩形

CClientDC dc(this);
CBrush brush(RGB(255,0,0));
dc.FillRect(CRect(m_ptOrigin,point),&brush);

 

//創建位圖畫刷
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
CBrush brush(&bitmap);
CClientDC dc(this);
dc.FillRect(CRect(m_ptOrigin,point),&brush);

 

 

//創建一個ClientDC和Brush,透明畫刷

CClientDC dc(this);
CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH))
CBrush *pOldBrush = dc.SelectObject(pBrush);
dc.Rectangle(CRect(m_ptOrigin,point));
dc.SelectObject(pOldBrush);

 

 

//創建一個ClientDC,Pen和Brush透明畫刷

 CClientDC dc(this);
 CPen pen(PS_SOLID,3,RGB(0,255,0));
 CPen *pOldPen = dc.SelectObject(&pen);
 CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
 CBrush *pOldBrush = dc.SelectObject(pBrush);
 dc.Rectangle(300,20,350,70);

 dc.SelectObject(pOldPen);
 dc.SelectObject(pBrush);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章