6,利用畫筆改變線條顔色和類型:
CPen pen(PS_DOT,1,RGB(0,255,0));//構造畫筆對象
CClientDC dc(this);CPen *pOldPen=dc.SelectObject(&pen);//将畫筆選入DC
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
dc.SelectObject(pOldPen);//恢複先前的畫筆
7,使用畫刷(通常利用畫刷去填充矩形區域):
使用單色畫刷
CBrush brush(RGB(255,0,0));//構造畫刷對象
CClientDC dc(this);
dc.FillRect(CRect(m_ptOrigin,point),&brush);//用指定的畫刷去填充矩形區域
使用位圖畫刷
CBitmap bitmap;//構造位圖對象(使用前需要初試化)
bitmap.LoadBitmap(IDB_BITMAP1);//初試化位圖對象
CBrush brush(&bitmap);//構造位圖畫刷
dc.FillRect(CRect(m_ptOrigin,point),&brush);//用指定的位圖畫刷去填充矩形區域
使用透明畫刷
CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));//擷取透明畫刷對象指針
CBrush *pOldBrush=dc.SelectObject(pBrush);//将透明畫刷選入DC
dc.Rectangle(CRect(m_ptOrigin,point));
dc.SelectObject(pOldBrush);//釋放透明畫刷
說明:
The GetStockObject function retrieves a handle to one of the predefined stock pens, brushes, fonts, or palettes.
HGDIOBJ GetStockObject(
int fnObject // type of stock object
);
Returns a pointer to a CBrush object when given a handle to a Windows HBRUSH object.
static CBrush* PASCAL FromHandle( HBRUSH hBrush );//FromHandle是一個靜态方法,故可用CBrush::FromHandle()形式調用。