天天看點

【VC++ MFC】vc 畫筆和畫刷

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()形式調用。

上一篇: vc DoEvent

繼續閱讀